Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icealb.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icealb.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icealb.F90	(revision 10968)
@@ -196,5 +196,5 @@
       READ  ( numnam_ice_cfg, namalb, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namalb in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namalb )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namalb )
       !
       IF(lwp) THEN                      ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedia.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedia.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedia.F90	(revision 10968)
@@ -184,5 +184,5 @@
       READ  ( numnam_ice_cfg, namdia, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdia in configuration namelist', lwp )
-      IF(lwm) WRITE ( numoni, namdia )
+      IF(lwm .AND. nprint > 2) WRITE ( numoni, namdia )
       !
       IF(lwp) THEN                  ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn.F90	(revision 10968)
@@ -330,5 +330,5 @@
       READ  ( numnam_ice_cfg, namdyn, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namdyn )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namdyn )
       !
       IF(lwp) THEN                     ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_adv.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_adv.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_adv.F90	(revision 10968)
@@ -162,5 +162,5 @@
       READ  ( numnam_ice_cfg, namdyn_adv, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn_adv in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namdyn_adv )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namdyn_adv )
       !
       IF(lwp) THEN                     ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rdgrft.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rdgrft.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rdgrft.F90	(revision 10968)
@@ -915,5 +915,5 @@
       READ  ( numnam_ice_cfg, namdyn_rdgrft, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn_rdgrft in configuration namelist', lwp )
-      IF(lwm) WRITE ( numoni, namdyn_rdgrft )
+      IF(lwm .AND. nprint > 2) WRITE ( numoni, namdyn_rdgrft )
       !
       IF (lwp) THEN                          ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rhg.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rhg.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rhg.F90	(revision 10968)
@@ -115,5 +115,5 @@
       READ  ( numnam_ice_cfg, namdyn_rhg, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namdyn_rhg in configuration namelist', lwp )
-      IF(lwm) WRITE ( numoni, namdyn_rhg )
+      IF(lwm .AND. nprint > 2) WRITE ( numoni, namdyn_rhg )
       !
       IF(lwp) THEN                     ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rhg_evp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rhg_evp.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icedyn_rhg_evp.F90	(revision 10968)
@@ -932,5 +932,5 @@
       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file
          !                                   ! -------------------
-         IF(lwp) WRITE(numout,*) '---- rhg-rst ----'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '---- rhg-rst ----'
          iter = kt + nn_fsbc - 1             ! ice restarts are written at kt == nitrst - nn_fsbc + 1
          !
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceistate.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceistate.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceistate.F90	(revision 10968)
@@ -524,5 +524,5 @@
       READ  ( numnam_ice_cfg, namini, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namini in configuration namelist', lwp )
-      IF(lwm) WRITE ( numoni, namini )
+      IF(lwm .AND. nprint > 2) WRITE ( numoni, namini )
       !
       slf_i(jp_hti) = sn_hti  ;  slf_i(jp_hts) = sn_hts
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceitd.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceitd.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceitd.F90	(revision 10968)
@@ -659,5 +659,5 @@
       READ  ( numnam_ice_cfg, namitd, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namitd in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namitd )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namitd )
       !
       IF(lwp) THEN                  ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icerst.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icerst.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icerst.F90	(revision 10968)
@@ -67,5 +67,5 @@
             clpath = TRIM(cn_icerst_outdir) 
             IF( clpath(LEN_TRIM(clpath):) /= '/' ) clpath = TRIM(clpath)//'/'
-            IF(lwp) THEN
+            IF(lwp .AND. nprint > 0) THEN
                WRITE(numout,*)
                WRITE(numout,*) '             open ice restart NetCDF file: ',TRIM(clpath)//clname
@@ -104,5 +104,5 @@
       iter = kt + nn_fsbc - 1   ! ice restarts are written at kt == nitrst - nn_fsbc + 1
 
-      IF( iter == nitrst ) THEN
+      IF( iter == nitrst .AND. nprint > 0 ) THEN
          IF(lwp) WRITE(numout,*)
          IF(lwp) WRITE(numout,*) 'ice_rst_write : write ice restart file  kt =', kt
@@ -176,5 +176,5 @@
       !!----------------------------------------------------------------------
 
-      IF(lwp) THEN
+      IF(lwp .AND. nprint > 0) THEN
          WRITE(numout,*)
          WRITE(numout,*) 'ice_rst_read: read ice NetCDF restart file'
@@ -186,6 +186,6 @@
       CALL iom_get( numrir, 'nn_fsbc', zfice )
       CALL iom_get( numrir, 'kt_ice' , ziter )    
-      IF(lwp) WRITE(numout,*) '   read ice restart file at time step    : ', ziter
-      IF(lwp) WRITE(numout,*) '   in any case we force it to nit000 - 1 : ', nit000 - 1
+      IF(lwp .AND. nprint > 0) WRITE(numout,*) '   read ice restart file at time step    : ', ziter
+      IF(lwp .AND. nprint > 0) WRITE(numout,*) '   in any case we force it to nit000 - 1 : ', nit000 - 1
 
       ! Control of date
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icesbc.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icesbc.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icesbc.F90	(revision 10968)
@@ -276,5 +276,5 @@
       READ  ( numnam_ice_cfg, namsbc, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namsbc )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namsbc )
       !
       IF(lwp) THEN                     ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icestp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icestp.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icestp.F90	(revision 10968)
@@ -235,5 +235,6 @@
       CALL ctl_opn( numnam_ice_ref, 'namelist_ice_ref',    'OLD',     'FORMATTED', 'SEQUENTIAL', -1, numout, lwp )
       CALL ctl_opn( numnam_ice_cfg, 'namelist_ice_cfg',    'OLD',     'FORMATTED', 'SEQUENTIAL', -1, numout, lwp )
-      IF(lwm) CALL ctl_opn( numoni, 'output.namelist.ice', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, 1 )
+      IF(lwm .AND. nprint > 2) &
+          CALL ctl_opn( numoni, 'output.namelist.ice', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, 1 )
       !
       CALL par_init                ! set some ice run parameters
@@ -307,5 +308,5 @@
       READ  ( numnam_ice_cfg, nampar, IOSTAT = ios, ERR = 902 )
 902   IF( ios > 0 )   CALL ctl_nam ( ios , 'nampar in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, nampar )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, nampar )
       !
       IF(lwp) THEN                  ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd.F90	(revision 10968)
@@ -549,5 +549,5 @@
       READ  ( numnam_ice_cfg, namthd, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namthd in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namthd )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namthd )
       !
       IF(lwp) THEN                          ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_da.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_da.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_da.F90	(revision 10968)
@@ -183,5 +183,5 @@
       READ  ( numnam_ice_cfg, namthd_da, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namthd_da in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namthd_da )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namthd_da )
       !
       IF(lwp) THEN                          ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_do.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_do.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_do.F90	(revision 10968)
@@ -446,5 +446,5 @@
       READ  ( numnam_ice_cfg, namthd_do, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namthd_do in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namthd_do )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namthd_do )
       !
       IF(lwp) THEN                          ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_pnd.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_pnd.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_pnd.F90	(revision 10968)
@@ -214,5 +214,5 @@
       READ  ( numnam_ice_cfg, namthd_pnd, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namthd_pnd in configuration namelist', lwp )
-      IF(lwm) WRITE ( numoni, namthd_pnd )
+      IF(lwm .AND. nprint > 2) WRITE ( numoni, namthd_pnd )
       !
       IF(lwp) THEN                        ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_sal.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_sal.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_sal.F90	(revision 10968)
@@ -138,5 +138,5 @@
       READ  ( numnam_ice_cfg, namthd_sal, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namthd_sal in configuration namelist', lwp )
-      IF(lwm) WRITE ( numoni, namthd_sal )
+      IF(lwm .AND. nprint > 2) WRITE ( numoni, namthd_sal )
       !
       IF(lwp) THEN                           ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_zdf.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_zdf.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/icethd_zdf.F90	(revision 10968)
@@ -94,5 +94,5 @@
       READ  ( numnam_ice_cfg, namthd_zdf, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namthd_zdf in configuration namelist', lwp )
-      IF(lwm) WRITE( numoni, namthd_zdf )
+      IF(lwm .AND. nprint > 2) WRITE( numoni, namthd_zdf )
       !
       IF(lwp) THEN                          ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceupdate.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceupdate.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/ICE/iceupdate.F90	(revision 10968)
@@ -442,5 +442,5 @@
       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file
          !                                   ! -------------------
-         IF(lwp) WRITE(numout,*) '---- update-rst ----'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '---- update-rst ----'
          iter = kt + nn_fsbc - 1             ! ice restarts are written at kt == nitrst - nn_fsbc + 1
          !
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ASM/asminc.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ASM/asminc.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ASM/asminc.F90	(revision 10968)
@@ -151,5 +151,5 @@
       READ  ( numnam_cfg, nam_asminc, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nam_asminc in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nam_asminc )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nam_asminc )
 
       ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdydta.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdydta.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdydta.F90	(revision 10968)
@@ -517,5 +517,5 @@
             READ  ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 )
 902         IF( ios >  0 )   CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp )
-            IF(lwm) WRITE( numond, nambdy_dta )
+            IF(lwm .AND. nprint > 2) WRITE( numond, nambdy_dta )
 
             cn_dir_array(jbdy) = cn_dir
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdyini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdyini.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdyini.F90	(revision 10968)
@@ -83,5 +83,5 @@
       READ  ( numnam_cfg, nambdy, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nambdy in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nambdy )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nambdy )
 
       IF( .NOT. Agrif_Root() ) ln_bdy = .FALSE.   ! forced for Agrif children
@@ -432,5 +432,5 @@
             READ  ( numnam_cfg, nambdy_index, IOSTAT = ios, ERR = 904 )
 904         IF( ios /= 0 )   CALL ctl_nam ( ios , 'nambdy_index in configuration namelist', lwp )
-            IF(lwm) WRITE ( numond, nambdy_index )
+            IF(lwm .AND. nprint > 2) WRITE ( numond, nambdy_index )
 
             SELECT CASE ( TRIM(ctypebdy) )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdytides.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdytides.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/BDY/bdytides.F90	(revision 10968)
@@ -105,5 +105,5 @@
             READ  ( numnam_cfg, nambdy_tide, IOSTAT = ios, ERR = 902 )
 902         IF( ios >  0 )   CALL ctl_nam ( ios , 'nambdy_tide in configuration namelist', lwp )
-            IF(lwm) WRITE ( numond, nambdy_tide )
+            IF(lwm .AND. nprint > 2) WRITE ( numond, nambdy_tide )
             !                                               ! Parameter control and print
             IF(lwp) WRITE(numout,*) '  '
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/c1d.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/c1d.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/c1d.F90	(revision 10968)
@@ -57,5 +57,5 @@
       READ  ( numnam_cfg, namc1d, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namc1d in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namc1d )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namc1d )
       !
       IF(lwp) THEN                    ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/dtauvd.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/dtauvd.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/dtauvd.F90	(revision 10968)
@@ -67,5 +67,5 @@
       READ  ( numnam_cfg, namc1d_uvd, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namc1d_uvd in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namc1d_uvd )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namc1d_uvd )
 
       !                             ! force the initialization when dyndmp is used
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/dyndmp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/dyndmp.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/C1D/dyndmp.F90	(revision 10968)
@@ -85,5 +85,5 @@
       READ  ( numnam_cfg, namc1d_dyndmp, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namc1d_dyndmp in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namc1d_dyndmp )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namc1d_dyndmp )
       !
       IF(lwp) THEN                           ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/CRS/crsini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/CRS/crsini.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/CRS/crsini.F90	(revision 10968)
@@ -86,5 +86,5 @@
       READ  ( numnam_cfg, namcrs, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namcrs in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namcrs )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namcrs )
 
      IF(lwp) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/dia25h.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/dia25h.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/dia25h.F90	(revision 10968)
@@ -59,5 +59,5 @@
       READ  ( numnam_cfg, nam_dia25h, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nam_dia25h in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nam_dia25h )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nam_dia25h )
 
       IF(lwp) THEN                   ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diadct.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diadct.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diadct.F90	(revision 10968)
@@ -140,5 +140,5 @@
      READ  ( numnam_cfg, namdct, IOSTAT = ios, ERR = 902 )
 902  IF( ios >  0 ) CALL ctl_nam ( ios , 'namdct in configuration namelist', lwp )
-     IF(lwm) WRITE ( numond, namdct )
+     IF(lwm .AND. nprint > 2) WRITE ( numond, namdct )
 
      IF( lwp ) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diaharm.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diaharm.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diaharm.F90	(revision 10968)
@@ -93,5 +93,5 @@
       READ  ( numnam_cfg, nam_diaharm, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nam_diaharm in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nam_diaharm )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nam_diaharm )
       !
       IF(lwp) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diahsb.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diahsb.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diahsb.F90	(revision 10968)
@@ -211,5 +211,5 @@
          CALL iom_put( 'bgvole3t' , zdiff_v2 * 1.e-9    )              ! volume e3t drift      (km3)  
          !
-         IF( kt == nitend .AND. lwp ) THEN
+         IF( kt == nitend .AND. lwp) THEN
             WRITE(numout,*)
             WRITE(numout,*) 'dia_hsb : last time step hsb diagnostics: at it= ', kt,' date= ', ndastp
@@ -310,7 +310,7 @@
       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file
          !                                   ! -------------------
-         IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) '   dia_hsb_rst : write restart at it= ', kt,' date= ', ndastp
-         IF(lwp) WRITE(numout,*)
+         IF(lwp .AND. nprint > 0) WRITE(numout,*)
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '   dia_hsb_rst : write restart at it= ', kt,' date= ', ndastp
+         IF(lwp .AND. nprint > 0) WRITE(numout,*)
          !
          IF( lwxios ) CALL iom_swap(      cwxios_context          )
@@ -366,5 +366,5 @@
       READ  ( numnam_cfg, namhsb, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namhsb in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namhsb )
+      IF(lwm  .AND. nprint > 2) WRITE( numond, namhsb )
 
       IF(lwp) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diaptr.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diaptr.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diaptr.F90	(revision 10968)
@@ -398,5 +398,5 @@
       READ  ( numnam_cfg, namptr, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namptr in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namptr )
+      IF(lwm.AND. nprint > 2) WRITE ( numond, namptr )
 
       IF(lwp) THEN                     ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diatmb.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diatmb.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DIA/diatmb.F90	(revision 10968)
@@ -48,5 +48,5 @@
       READ  ( numnam_cfg, nam_diatmb, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'nam_diatmb in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nam_diatmb )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nam_diatmb )
 
       IF(lwp) THEN                   ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/daymod.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/daymod.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/daymod.F90	(revision 10968)
@@ -269,7 +269,7 @@
          CALL ymds2ju( nyear, 01, 01, 0.0, fjulstartyear )
          !
-         IF(lwp) WRITE(numout,'(a,i8,a,i4.4,a,i2.2,a,i2.2,a,i3.3)') '======>> time-step =', kt,   &
+         IF(lwp .AND. nprint > 0) WRITE(numout,'(a,i8,a,i4.4,a,i2.2,a,i2.2,a,i3.3)') '======>> time-step =', kt,   &
               &   '      New day, DATE Y/M/D = ', nyear, '/', nmonth, '/', nday, '      nday_year = ', nday_year
-         IF(lwp) WRITE(numout,'(a,i8,a,i7,a,i5)') '         nsec_year = ', nsec_year,   &
+         IF(lwp .AND. nprint > 0) WRITE(numout,'(a,i8,a,i7,a,i5)') '         nsec_year = ', nsec_year,   &
               &   '   nsec_month = ', nsec_month, '   nsec_day = ', nsec_day, '   nsec_week = ', nsec_week
       ENDIF
@@ -402,7 +402,9 @@
          !
          IF( kt == nitrst ) THEN
-            IF(lwp) WRITE(numout,*)
-            IF(lwp) WRITE(numout,*) 'rst_write : write oce restart file  kt =', kt
-            IF(lwp) WRITE(numout,*) '~~~~~~~'
+            IF(lwp .AND. nprint > 0) THEN
+               WRITE(numout,*)
+               WRITE(numout,*) 'rst_write : write oce restart file  kt =', kt
+               WRITE(numout,*) '~~~~~~~'
+            ENDIF
          ENDIF
          ! calendar control
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domain.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domain.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domain.F90	(revision 10968)
@@ -312,5 +312,5 @@
       READ  ( numnam_cfg, namrun, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namrun in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namrun )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namrun )
       !
       IF(lwp) THEN                  ! control print
@@ -405,5 +405,5 @@
       READ  ( numnam_cfg, namdom, IOSTAT = ios, ERR = 904 )
 904   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdom in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namdom )
+      IF(lwm .AND. nprint > 2) WRITE( numond, namdom )
       !
       IF(lwp) THEN
@@ -437,5 +437,5 @@
       READ  ( numnam_cfg, namnc4, IOSTAT = ios, ERR = 908 )
 908   IF( ios >  0 )   CALL ctl_nam ( ios , 'namnc4 in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namnc4 )
+      IF(lwm .AND. nprint > 2) WRITE( numond, namnc4 )
 
       IF(lwp) THEN                        ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/dommsk.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/dommsk.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/dommsk.F90	(revision 10968)
@@ -110,5 +110,5 @@
       READ  ( numnam_cfg, namlbc, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namlbc in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namlbc )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namlbc )
       
       IF(lwp) THEN                  ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domvvl.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domvvl.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domvvl.F90	(revision 10968)
@@ -952,5 +952,5 @@
       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file
          !                                   ! ===================
-         IF(lwp) WRITE(numout,*) '---- dom_vvl_rst ----'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '---- dom_vvl_rst ----'
          IF( lwxios ) CALL iom_swap(      cwxios_context          )
          !                                           ! --------- !
@@ -997,5 +997,5 @@
       READ  ( numnam_cfg, nam_vvl, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'nam_vvl in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nam_vvl )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nam_vvl )
       !
       IF(lwp) THEN                    ! Namelist print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domzgr.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domzgr.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/domzgr.F90	(revision 10968)
@@ -147,5 +147,5 @@
 !!gm end bug
       !
-      IF( nprint == 1 .AND. lwp )   THEN
+      IF( nprint > 3 .AND. lwp )   THEN
          WRITE(numout,*) ' MIN val k_top   ', MINVAL(   k_top(:,:) ), ' MAX ', MAXVAL( k_top(:,:) )
          WRITE(numout,*) ' MIN val k_bot   ', MINVAL(   k_bot(:,:) ), ' MAX ', MAXVAL( k_bot(:,:) )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/dtatsd.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/dtatsd.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/dtatsd.F90	(revision 10968)
@@ -71,5 +71,5 @@
       READ  ( numnam_cfg, namtsd, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtsd in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namtsd )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namtsd )
 
       IF( PRESENT( ld_tradmp ) )   ln_tsd_dmp = .TRUE.     ! forces the initialization when tradmp is used
@@ -243,5 +243,5 @@
       IF( .NOT.ln_tsd_dmp ) THEN                   !==   deallocate T & S structure   ==! 
          !                                              (data used only for initialisation)
-         IF(lwp) WRITE(numout,*) 'dta_tsd: deallocte T & S arrays as they are only use to initialize the run'
+         IF(lwp .AND. nprint > 1) WRITE(numout,*) 'dta_tsd: deallocte T & S arrays as they are only use to initialize the run'
                                         DEALLOCATE( sf_tsd(jp_tem)%fnow )     ! T arrays in the structure
          IF( sf_tsd(jp_tem)%ln_tint )   DEALLOCATE( sf_tsd(jp_tem)%fdta )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/iscplini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/iscplini.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DOM/iscplini.F90	(revision 10968)
@@ -68,5 +68,5 @@
       READ  ( numnam_cfg, namsbc_iscpl, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_iscpl in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsbc_iscpl )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_iscpl )
       !
       nstp_iscpl=MIN( nn_fiscpl, nitend-nit000+1 ) ! the coupling period have to be less or egal than the total number of time step
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynadv.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynadv.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynadv.F90	(revision 10968)
@@ -110,5 +110,5 @@
       READ  ( numnam_cfg, namdyn_adv, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn_adv in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namdyn_adv )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namdyn_adv )
 
       IF(lwp) THEN                    ! Namelist print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynhpg.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynhpg.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynhpg.F90	(revision 10968)
@@ -157,5 +157,5 @@
       READ  ( numnam_cfg, namdyn_hpg, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn_hpg in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namdyn_hpg )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namdyn_hpg )
       !
       IF(lwp) THEN                   ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynspg.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynspg.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynspg.F90	(revision 10968)
@@ -207,5 +207,5 @@
       READ  ( numnam_cfg, namdyn_spg, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn_spg in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namdyn_spg )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namdyn_spg )
       !
       IF(lwp) THEN             ! Namelist print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynspg_ts.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynspg_ts.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynspg_ts.F90	(revision 10968)
@@ -1436,5 +1436,5 @@
       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file
          !                                   ! -------------------
-         IF(lwp) WRITE(numout,*) '---- ts_rst ----'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '---- ts_rst ----'
          IF( lwxios ) CALL iom_swap(      cwxios_context          )
          CALL iom_rstput( kt, nitrst, numrow, 'ub2_b'   , ub2_b  (:,:), ldxios = lwxios )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynvor.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynvor.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/dynvor.F90	(revision 10968)
@@ -855,5 +855,5 @@
       READ  ( numnam_cfg, namdyn_vor, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn_vor in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namdyn_vor )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namdyn_vor )
       !
       IF(lwp) THEN                    ! Namelist print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/wet_dry.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/wet_dry.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/DYN/wet_dry.F90	(revision 10968)
@@ -85,5 +85,5 @@
       READ  ( numnam_cfg, namwad, IOSTAT = ios, ERR = 906)
 906   IF( ios >  0 )   CALL ctl_nam ( ios , 'namwad in configuration namelist', .TRUE. )
-      IF(lwm) WRITE ( numond, namwad )
+      IF(lwm .AND. nprint > 2 ) WRITE ( numond, namwad )
       !
       IF( rn_wd_sbcfra>=1 )   CALL ctl_stop( 'STOP', 'rn_wd_sbcfra >=1 : must be < 1' )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/FLO/floats.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/FLO/floats.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/FLO/floats.F90	(revision 10968)
@@ -95,5 +95,5 @@
       READ  ( numnam_cfg, namflo, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namflo in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namflo )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namflo )
       !
       IF(lwp) THEN                  ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbclv.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbclv.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbclv.F90	(revision 10968)
@@ -179,5 +179,6 @@
       CALL lbc_lnk( 'icbclv', berg_grid%stored_heat, 'T', 1._wp )
       !
-      IF( nn_verbose_level > 0 .AND. icntmax > 1 )   WRITE(numicb,*) 'icb_clv: icnt=', icnt,' on', narea
+      IF( nn_verbose_level > 0 .AND. icntmax > 1 .AND. numicb /= -1)  &
+         WRITE(numicb,*) 'icb_clv: icnt=', icnt,' on', narea
       !
    END SUBROUTINE  icb_clv
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbdia.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbdia.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbdia.F90	(revision 10968)
@@ -327,5 +327,5 @@
                &                    'returned',calving_ret_net)
          ENDIF
-         IF (nn_verbose_level > 0) THEN
+         IF (nn_verbose_level > 0 .AND. numicb.NE.-1) THEN
             WRITE( numicb, '("calved by class = ",i6,20(",",i6))') (nbergs_calved_by_class(ik),ik=1,nclasses)
             IF( nspeeding_tickets > 0 )   WRITE( numicb, '("speeding tickets issued = ",i6)') nspeeding_tickets
@@ -442,5 +442,5 @@
          stored_heat_start = SUM( berg_grid%stored_heat(:,:) )
          CALL mpp_sum( 'icbdia', stored_heat_start )
-         IF (nn_verbose_level > 0) THEN
+         IF (nn_verbose_level > 0 .AND. numicb.NE.-1) THEN
             WRITE(numicb,'(a,es13.6,a)')   'icb_dia_income: initial stored mass=',stored_start,' kg'
             WRITE(numicb,'(a,es13.6,a)')   'icb_dia_income: initial stored heat=',stored_heat_start,' J'
@@ -521,14 +521,16 @@
       IF (nn_verbose_level == 0) RETURN
       IF( PRESENT(kbergs) ) THEN
-         WRITE(numicb,100) cd_budgetstr // ' state:',                                    &
-            &              cd_startstr  // ' start',  pstartval,         cd_budgetunits, &
-            &              cd_endstr    // ' end',    pendval,           cd_budgetunits, &
-            &              'Delta '     // cd_delstr, pendval-pstartval, cd_budgetunits, &
-            &              '# of bergs', kbergs
+         IF( numicb.NE.-1 ) &
+            WRITE(numicb,100) cd_budgetstr // ' state:',                                    &
+               &              cd_startstr  // ' start',  pstartval,         cd_budgetunits, &
+               &              cd_endstr    // ' end',    pendval,           cd_budgetunits, &
+               &              'Delta '     // cd_delstr, pendval-pstartval, cd_budgetunits, &
+               &              '# of bergs', kbergs
       ELSE
-         WRITE(numicb,100) cd_budgetstr // ' state:',                                   &
-            &              cd_startstr  // ' start', pstartval,         cd_budgetunits, &
-            &              cd_endstr    // ' end',   pendval,           cd_budgetunits, &
-            &              cd_delstr    // 'Delta',  pendval-pstartval, cd_budgetunits
+         IF( numicb.NE.-1 ) &
+            WRITE(numicb,100) cd_budgetstr // ' state:',                                   &
+               &              cd_startstr  // ' start', pstartval,         cd_budgetunits, &
+               &              cd_endstr    // ' end',   pendval,           cd_budgetunits, &
+               &              cd_delstr    // 'Delta',  pendval-pstartval, cd_budgetunits
       ENDIF
 100   FORMAT(a19,3(a18,"=",es14.7,x,a2,:,","),a12,i8)
@@ -545,8 +547,9 @@
       !
       IF (nn_verbose_level == 0) RETURN
-      WRITE(numicb,200) cd_budgetstr // ' check:',                 &
-         &              cd_startstr,    pstartval, cd_budgetunits, &
-         &              cd_endstr,      pendval,   cd_budgetunits, &
-         &              'error',        (pendval-pstartval)/((pendval+pstartval)+1e-30), 'nd'
+      IF(numicb.NE.-1) & 
+         WRITE(numicb,200) cd_budgetstr // ' check:',                 &
+            &              cd_startstr,    pstartval, cd_budgetunits, &
+            &              cd_endstr,      pendval,   cd_budgetunits, &
+            &              'error',        (pendval-pstartval)/((pendval+pstartval)+1e-30), 'nd'
 200   FORMAT(a19,10(a18,"=",es14.7,x,a2,:,","))
       !
@@ -568,9 +571,10 @@
          &   MAX( 1.e-30, MAX( ABS( pendval - pstartval ) , ABS( pinval - poutval ) ) )
          !
-      WRITE(numicb,200) cd_budgetstr // ' budget:', &
-         &              cd_instr     // ' in',      pinval,         cd_budgetunits, &
-         &              cd_outstr    // ' out',     poutval,        cd_budgetunits, &
-         &              'Delta '     // cd_delstr,  pinval-poutval, cd_budgetunits, &
-         &              'error',        zval,                       'nd'
+      IF(numicb.NE.-1) & 
+         WRITE(numicb,200) cd_budgetstr // ' budget:', &
+            &              cd_instr     // ' in',      pinval,         cd_budgetunits, &
+            &              cd_outstr    // ' out',     poutval,        cd_budgetunits, &
+            &              'Delta '     // cd_delstr,  pinval-poutval, cd_budgetunits, &
+            &              'error',        zval,                       'nd'
   200 FORMAT(a19,3(a18,"=",es14.7,x,a2,:,","),a8,"=",es10.3,x,a2)
       !
@@ -586,8 +590,9 @@
       !
       IF (nn_verbose_level == 0) RETURN
-      WRITE(numicb,100) cd_budgetstr // ' state:',           &
-         &              cd_startstr  // ' start', pstartval, &
-         &              cd_endstr    // ' end',   pendval,   &
-         &              cd_delstr    // 'Delta',  pendval-pstartval
+      IF(numicb.NE.-1) & 
+         WRITE(numicb,100) cd_budgetstr // ' state:',           &
+            &              cd_startstr  // ' start', pstartval, &
+            &              cd_endstr    // ' end',   pendval,   &
+            &              cd_delstr    // 'Delta',  pendval-pstartval
   100 FORMAT(a19,3(a18,"=",i14,x,:,","))
       !
@@ -604,9 +609,10 @@
       !
       IF (nn_verbose_level == 0) RETURN
-      WRITE(numicb,200) cd_budgetstr // ' budget:', &
-         &              cd_instr     // ' in',      pinval, &
-         &              cd_outstr    // ' out',     poutval, &
-         &              'Delta '     // cd_delstr,  pinval-poutval, &
-         &              'error',                    ( ( pendval - pstartval ) - ( pinval - poutval ) )
+      IF(numicb.NE.-1) & 
+         WRITE(numicb,200) cd_budgetstr // ' budget:', &
+            &              cd_instr     // ' in',      pinval, &
+            &              cd_outstr    // ' out',     poutval, &
+            &              'Delta '     // cd_delstr,  pinval-poutval, &
+            &              'error',                    ( ( pendval - pstartval ) - ( pinval - poutval ) )
 200   FORMAT(a19,10(a18,"=",i14,x,:,","))
       !
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbdyn.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbdyn.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbdyn.F90	(revision 10968)
@@ -372,8 +372,18 @@
       !                                      ! check the speed and acceleration limits
       IF (nn_verbose_level > 0) THEN
-         IF( ABS( zuveln ) > pp_vel_lim   .OR. ABS( zvveln ) > pp_vel_lim   )   &
-            WRITE(numicb,'("pe=",i3,x,a)') narea,'Dump triggered by excessive velocity'
-         IF( ABS( pax    ) > pp_accel_lim .OR. ABS( pay    ) > pp_accel_lim )   &
-            WRITE(numicb,'("pe=",i3,x,a)') narea,'Dump triggered by excessive acceleration'
+          IF( ABS( zuveln ) > pp_vel_lim   .OR. ABS( zvveln ) > pp_vel_lim   ) THEN 
+              IF(numicb.NE.-1) THEN 
+                  WRITE(numicb,'("pe=",i3,x,a)') narea,'Dump triggered by excessive velocity' 
+              ELSE 
+                  WRITE(*,'("pe=",i3,x,a)') narea,'Dump triggered by excessive velocity'  
+              ENDIF 
+          ENDIF 
+          IF( ABS( pax    ) > pp_accel_lim .OR. ABS( pay    ) > pp_accel_lim ) THEN 
+              IF(numicb.NE.-1) THEN 
+                  WRITE(numicb,'("pe=",i3,x,a)') narea,'Dump triggered by excessive acceleration' 
+              ELSE 
+                  WRITE(*,'("pe=",i3,x,a)') narea,'Dump triggered by excessive acceleration' 
+              ENDIF 
+          ENDIF
       ENDIF
       !
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbini.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbini.F90	(revision 10968)
@@ -89,6 +89,9 @@
       !                          ! note that we choose to do this on all processors since we cannot
       !                          ! predict where icebergs will be ahead of time
-      IF( nn_verbose_level > 0) THEN
+      numicb=-1
+      IF( nn_verbose_level > 0 .AND. nprint>0) THEN
          CALL ctl_opn( numicb, 'icebergs.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
+      ELSE 
+         IF(lwp) CALL ctl_opn( numicb, 'icebergs.stat', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea ) 
       ENDIF
 
@@ -200,5 +203,5 @@
       ENDIF
       !
-      IF( nn_verbose_level > 0) THEN
+      IF( nn_verbose_level > 0  .AND. numicb.NE.-1 ) THEN
          WRITE(numicb,*) 'processor ', narea
          WRITE(numicb,*) 'jpi, jpj   ', jpi, jpj
@@ -262,5 +265,5 @@
          CALL iom_close( inum )                                     ! close file
          !
-         IF( nn_verbose_level > 0) THEN
+         IF( nn_verbose_level > 0  .AND. numicb.NE.-1 ) THEN
             WRITE(numicb,*)
             WRITE(numicb,*) '          calving read in a file'
@@ -359,5 +362,5 @@
       ibergs = icb_utl_count()
       CALL mpp_sum('icbini', ibergs)
-      IF( nn_verbose_level > 0) THEN
+      IF( nn_verbose_level > 0  .AND. numicb.NE.-1 ) THEN
          WRITE(numicb,'(a,i6,a)') 'diamonds, icb_ini_gen: ',ibergs,' were generated'
       ENDIF
@@ -410,5 +413,5 @@
       READ  ( numnam_cfg, namberg, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namberg in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namberg )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namberg )
       !
       IF(lwp) WRITE(numout,*)
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icblbc.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icblbc.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icblbc.F90	(revision 10968)
@@ -194,5 +194,5 @@
       ENDIF
 
-      IF( nn_verbose_level >= 2 ) THEN
+      IF( nn_verbose_level >= 2 .AND. numicb /= -1) THEN
          WRITE(numicb,*) 'processor west  : ', ipe_W
          WRITE(numicb,*) 'processor east  : ', ipe_E
@@ -237,5 +237,5 @@
                this => this%next
                ibergs_to_send_e = ibergs_to_send_e + 1
-               IF( nn_verbose_level >= 4 ) THEN
+               IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN
                   WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to east'
                   CALL flush( numicb )
@@ -250,5 +250,5 @@
                this => this%next
                ibergs_to_send_w = ibergs_to_send_w + 1
-               IF( nn_verbose_level >= 4 ) THEN
+               IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN
                   WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to west'
                   CALL flush( numicb )
@@ -264,5 +264,5 @@
          END DO
       ENDIF
-      IF( nn_verbose_level >= 3) THEN
+      IF( nn_verbose_level >= 3 .AND. numicb /= -1) THEN
          WRITE(numicb,*) 'bergstep ',nktberg,' send ew: ', ibergs_to_send_e, ibergs_to_send_w
          CALL flush(numicb)
@@ -298,5 +298,5 @@
          ibergs_rcvd_from_w = INT( zwebergs(2) )
       END SELECT
-      IF( nn_verbose_level >= 3) THEN
+      IF( nn_verbose_level >= 3 .AND. numicb /= -1 ) THEN
          WRITE(numicb,*) 'bergstep ',nktberg,' recv ew: ', ibergs_rcvd_from_w, ibergs_rcvd_from_e
          CALL flush(numicb)
@@ -312,5 +312,5 @@
          IF( ibergs_to_send_e > 0 .AND. l_isend ) CALL mpi_wait( iml_req1, iml_stat, iml_err )
          DO i = 1, ibergs_rcvd_from_e
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e%data(16,i)),' from east'
                CALL flush( numicb )
@@ -332,5 +332,5 @@
          IF( ibergs_to_send_e > 0 .AND. l_isend ) CALL mpi_wait( iml_req3, iml_stat, iml_err )
          DO i = 1, ibergs_rcvd_from_e
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_e%data(16,i)),' from east'
                CALL flush( numicb )
@@ -339,5 +339,5 @@
          END DO
          DO i = 1, ibergs_rcvd_from_w
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w%data(16,i)),' from west'
                CALL flush( numicb )
@@ -353,5 +353,5 @@
          IF( ibergs_to_send_w > 0 .AND. l_isend ) CALL mpi_wait( iml_req4, iml_stat, iml_err )
          DO i = 1, ibergs_rcvd_from_w
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_w%data(16,i)),' from west'
                CALL flush( numicb )
@@ -375,5 +375,5 @@
                this => this%next
                ibergs_to_send_n = ibergs_to_send_n + 1
-               IF( nn_verbose_level >= 4 ) THEN
+               IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN
                   WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to north'
                   CALL flush( numicb )
@@ -385,5 +385,5 @@
                this => this%next
                ibergs_to_send_s = ibergs_to_send_s + 1
-               IF( nn_verbose_level >= 4 ) THEN
+               IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN
                   WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for transfer to south'
                   CALL flush( numicb )
@@ -396,5 +396,5 @@
          END DO
       ENDIF
-      if( nn_verbose_level >= 3) then
+      if( nn_verbose_level >= 3 .AND. numicb /= -1 ) then
          write(numicb,*) 'bergstep ',nktberg,' send ns: ', ibergs_to_send_n, ibergs_to_send_s
          call flush(numicb)
@@ -429,5 +429,5 @@
          ibergs_rcvd_from_s = INT( zsnbergs(2) )
       END SELECT
-      if( nn_verbose_level >= 3) then
+      if( nn_verbose_level >= 3 .AND. numicb /= -1) then
          write(numicb,*) 'bergstep ',nktberg,' recv ns: ', ibergs_rcvd_from_s, ibergs_rcvd_from_n
          call flush(numicb)
@@ -443,5 +443,5 @@
          IF( ibergs_to_send_n > 0 .AND. l_isend ) CALL mpi_wait( iml_req1, iml_stat, iml_err )
          DO i = 1, ibergs_rcvd_from_n
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1 ) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n%data(16,i)),' from north'
                CALL flush( numicb )
@@ -463,5 +463,5 @@
          IF( ibergs_to_send_n > 0 .AND. l_isend ) CALL mpi_wait( iml_req3, iml_stat, iml_err )
          DO i = 1, ibergs_rcvd_from_n
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_n%data(16,i)),' from north'
                CALL flush( numicb )
@@ -470,5 +470,5 @@
          END DO
          DO i = 1, ibergs_rcvd_from_s
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s%data(16,i)),' from south'
                CALL flush( numicb )
@@ -484,5 +484,5 @@
          IF( ibergs_to_send_s > 0 .AND. l_isend ) CALL mpi_wait( iml_req4, iml_stat, iml_err )
          DO i = 1, ibergs_rcvd_from_s
-            IF( nn_verbose_level >= 4 ) THEN
+            IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN
                WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_s%data(16,i)),' from south'
                CALL flush( numicb )
@@ -497,5 +497,5 @@
          i = ( ibergs_rcvd_from_n + ibergs_rcvd_from_s + ibergs_rcvd_from_e + ibergs_rcvd_from_w ) - &
              ( ibergs_to_send_n + ibergs_to_send_s + ibergs_to_send_e + ibergs_to_send_w )
-         IF( ibergs_end-(ibergs_start+i) .NE. 0 ) THEN
+         IF( ibergs_end-(ibergs_start+i) .NE. 0 .AND. numicb /= -1) THEN
             WRITE( numicb,*   ) 'send_bergs_to_other_pes: net change in number of icebergs'
             WRITE( numicb,1000) 'send_bergs_to_other_pes: ibergs_end=', &
@@ -532,5 +532,5 @@
       IF( npolj /= 0 .AND. jpni > 1 ) CALL icb_lbc_mpp_nfld( )
 
-      IF( nn_verbose_level > 0 ) THEN
+      IF( nn_verbose_level > 0) THEN
          i = 0
          this => first_berg
@@ -544,8 +544,10 @@
                 ijne .GT. mjg(nicbej)) THEN
                i = i + 1
-               WRITE(numicb,*) 'berg lost in halo: ', this%number(:),iine,ijne
-               WRITE(numicb,*) '                   ', nimpp, njmpp
-               WRITE(numicb,*) '                   ', nicbdi, nicbei, nicbdj, nicbej
-               CALL flush( numicb )
+               IF(numicb /= -1) THEN 
+                   WRITE(numicb,*) 'berg lost in halo: ', this%number(:),iine,ijne
+                   WRITE(numicb,*) '                   ', nimpp, njmpp
+                   WRITE(numicb,*) '                   ', nicbdi, nicbei, nicbdj, nicbej
+                   CALL flush( numicb )
+               ENDIF
             ENDIF
             this => this%next
@@ -553,5 +555,9 @@
          CALL mpp_sum('icblbc', i)
          IF( i .GT. 0 ) THEN
-            WRITE( numicb,'(a,i4)') 'send_bergs_to_other_pes: # of bergs outside computational domain = ',i
+            IF(numicb /= -1) THEN
+                WRITE( numicb,'(a,i4)') 'send_bergs_to_other_pes: # of bergs outside computational domain = ',i
+            ELSE
+                WRITE( *,'(a,i4)') 'send_bergs_to_other_pes: # of bergs outside computational domain = ',i
+            ENDIF
             CALL ctl_stop('send_bergs_to_other_pes:  there are bergs still in halos!')
          ENDIF ! root_pe
@@ -656,5 +662,5 @@
              IF( nicbfldproc(jjn) .eq. INT(znbergs(1)) ) EXIT
             END DO
-            IF( jjn .GT. jpni .AND. nn_verbose_level > 0 ) write(numicb,*) 'ICB ERROR'
+            IF( jjn .GT. jpni .AND. nn_verbose_level > 0 .AND. numicb /= -1 ) write(numicb,*) 'ICB ERROR'
             nicbfldexpect(jjn) = INT( znbergs(2) )
             !IF ( nicbfldexpect(jjn) .GT. 0 .AND. nn_verbose_level > 0 ) write(numicb,*) 'ICB expecting ',nicbfldexpect(jjn),' from ', nicbfldproc(jjn)
@@ -711,5 +717,5 @@
                            tmpberg => this
                            ibergs_to_send = ibergs_to_send + 1
-                           IF( nn_verbose_level >= 4 ) THEN
+                           IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN
                               WRITE(numicb,*) 'bergstep ',nktberg,' packing berg ',tmpberg%number(:),' for north fold'
                               CALL flush( numicb )
@@ -724,5 +730,5 @@
                END DO
             ENDIF
-            if( nn_verbose_level >= 3) then
+            if( nn_verbose_level >= 3 .AND. numicb /= -1) then
                write(numicb,*) 'bergstep ',nktberg,' send nfld: ', ibergs_to_send
                call flush(numicb)
@@ -755,5 +761,5 @@
             !
             DO jk = 1, ibergs_to_rcv
-               IF( nn_verbose_level >= 4 ) THEN
+               IF( nn_verbose_level >= 4 .AND. numicb /= -1) THEN
                   WRITE(numicb,*) 'bergstep ',nktberg,' unpacking berg ',INT(ibuffer_f%data(16,jk)),' from north fold'
                   CALL flush( numicb )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbrst.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbrst.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbrst.F90	(revision 10968)
@@ -137,5 +137,5 @@
       ! Sanity checks
       jn = icb_utl_count()
-      IF ( lwp .AND. nn_verbose_level >= 0 )   &
+      IF ( lwp .AND. nprint > 0 )   &
          WRITE(numout,'(2(a,i5))') 'icebergs, read_restart_bergs: # bergs =',jn,' on PE',narea-1
       IF( lk_mpp ) THEN
@@ -144,5 +144,5 @@
          CALL mpp_sum('icbrst', jn)
       ENDIF
-      IF( lwp )   WRITE(numout,'(a,i5,a,i5,a)') 'icebergs, icb_rst_read: there were',ibergs_in_file,   &
+      IF( lwp .AND. nprint > 0 )   WRITE(numout,'(a,i5,a,i5,a)') 'icebergs, icb_rst_read: there were',ibergs_in_file,   &
          &                                    ' bergs in the restart file and', jn,' bergs have been read'
       !
@@ -176,5 +176,5 @@
       ENDIF
       !
-      IF( lwp .AND. nn_verbose_level >= 0 )  WRITE(numout,'(a)') 'icebergs, icb_rst_read: completed'
+      IF( lwp .AND. nprint > 0 )  WRITE(numout,'(a)') 'icebergs, icb_rst_read: completed'
       !
    END SUBROUTINE icb_rst_read
@@ -211,5 +211,5 @@
             WRITE(cl_filename,'(A,"_icebergs_",I8.8,"_restart.nc")') TRIM(cexper), kt
          ENDIF
-         IF ( lwp .AND. nn_verbose_level >= 0) WRITE(numout,'(2a)') 'icebergs, write_restart: creating ',  &
+         IF ( lwp .AND. nprint > 0) WRITE(numout,'(2a)') 'icebergs, write_restart: creating ',  &
            &                                                         TRIM(cl_path)//TRIM(cl_filename)
    
@@ -346,5 +346,5 @@
             ENDIF
          ENDDO
-         IF( lwp ) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_ice  written'
+         IF( lwp .AND. nprint > 1) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_ice  written'
    
          nret = NF90_PUT_VAR( ncid, nkountid, num_bergs(:) )
@@ -353,5 +353,5 @@
          nret = NF90_PUT_VAR( ncid, nsheatid, berg_grid%stored_heat(:,:) )
          IF (nret .ne. NF90_NOERR) CALL ctl_stop('icebergs, write_restart: nf_put_var stored_heat failed')
-         IF( lwp ) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_heat written'
+         IF( lwp .AND. nprint > 1) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: stored_heat written'
    
          nret = NF90_PUT_VAR( ncid, ncalvid , src_calving(:,:) )
@@ -359,5 +359,5 @@
          nret = NF90_PUT_VAR( ncid, ncalvhid, src_calving_hflx(:,:) )
          IF (nret .ne. NF90_NOERR) CALL ctl_stop('icebergs, write_restart: nf_put_var calving_hflx failed')
-         IF( lwp ) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: calving written'
+         IF( lwp .AND. nprint > 1) WRITE(numout,*) 'file: ',TRIM(cl_path)//TRIM(cl_filename),' var: calving written'
    
          IF ( ASSOCIATED(first_berg) ) THEN
@@ -401,10 +401,10 @@
          ! Sanity check
          jn = icb_utl_count()
-         IF ( lwp .AND. nn_verbose_level >= 0)   &
+         IF ( lwp .AND. nprint > 0)   &
             WRITE(numout,'(2(a,i5))') 'icebergs, icb_rst_write: # bergs =',jn,' on PE',narea-1
          IF( lk_mpp ) THEN
             CALL mpp_sum('icbrst', jn)
          ENDIF
-         IF(lwp)   WRITE(numout,'(a,i5,a,i5,a)') 'icebergs, icb_rst_write: ', jn,   &
+         IF(lwp .AND. nprint > 0)   WRITE(numout,'(a,i5,a,i5,a)') 'icebergs, icb_rst_write: ', jn,   &
             &                                    ' bergs in total have been written at timestep ', kt
          !
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbstp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbstp.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbstp.F90	(revision 10968)
@@ -88,5 +88,5 @@
       IF( nn_verbose_write > 0 .AND. MOD( kt-1 , nn_verbose_write ) == 0 )   ll_verbose = ( nn_verbose_level >= 0 )
       !
-      IF( ll_verbose )   WRITE(numicb,9100) nktberg, ndastp, nsec_day
+      IF( ll_verbose .AND. numicb /= -1)   WRITE(numicb,9100) nktberg, ndastp, nsec_day
  9100 FORMAT('kt= ',i8, ' day= ',i8,' secs=',i8)
       !
@@ -161,7 +161,7 @@
       IF( nn_sample_rate > 0 )   CALL icb_trj_end()
 
-      IF(lwp) WRITE(numout,'(a,i6)') 'icebergs: icb_end complete', narea
+      IF(lwp .AND. nprint > 0) WRITE(numout,'(a,i6)') 'icebergs: icb_end complete', narea
       !
-      IF( nn_verbose_level > 0 ) THEN
+      IF( nn_verbose_level > 0 .AND. numicb /= -1) THEN
          CALL flush( numicb )
          CLOSE( numicb )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbtrj.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbtrj.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbtrj.F90	(revision 10968)
@@ -85,5 +85,5 @@
          &                        TRIM(ADJUSTL(cldate_ini)), TRIM(ADJUSTL(cldate_end))
       ENDIF
-      IF( lwp .AND. nn_verbose_level >= 0 )   WRITE(numout,'(2a)') 'icebergs, icb_trj_init: creating ',TRIM(cl_filename)
+      IF( lwp .AND. nprint > 2 )   WRITE(numout,'(2a)') 'icebergs, icb_trj_init: creating ',TRIM(cl_filename)
 
       iret = NF90_CREATE( TRIM(cl_filename), NF90_CLOBBER, ntrajid )
@@ -248,5 +248,5 @@
          this => this%next
       END DO
-      IF( lwp .AND. nn_verbose_level > 0 )   WRITE(numout,*) 'trajectory write to frame ', jn
+      IF( lwp .AND. nprint > 0 )   WRITE(numout,*) 'trajectory write to frame ', jn
       num_traj = jn
       !
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbutl.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbutl.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ICB/icbutl.F90	(revision 10968)
@@ -647,9 +647,11 @@
       !
       IF (nn_verbose_level == 0) RETURN
-      pt => berg%current_point
-      WRITE(numicb, 9200) kt, berg%number(1), &
+      IF(numicb /= -1) THEN
+         pt => berg%current_point
+         WRITE(numicb, 9200) kt, berg%number(1), &
                    pt%xi, pt%yj, pt%lon, pt%lat, pt%uvel, pt%vvel,  &
                    pt%uo, pt%vo, pt%ua, pt%va, pt%ui, pt%vi
-      CALL flush( numicb )
+         CALL flush( numicb )
+      ENDIF
  9200 FORMAT(5x,i5,2x,i10,6(2x,2f10.4))
       !
@@ -673,8 +675,10 @@
       IF (nn_verbose_level == 0) RETURN
       this => first_berg
-      IF( ASSOCIATED(this) ) THEN
-         WRITE(numicb,'(a," pe=(",i3,")")' ) cd_label, narea
-         WRITE(numicb,'(a8,4x,a6,12x,a5,15x,a7,19x,a3,17x,a5,17x,a5,17x,a5)' )   &
-            &         'timestep', 'number', 'xi,yj','lon,lat','u,v','uo,vo','ua,va','ui,vi'
+      IF(numicb /= -1) THEN
+         IF( ASSOCIATED(this) ) THEN
+            WRITE(numicb,'(a," pe=(",i3,")")' ) cd_label, narea
+            WRITE(numicb,'(a8,4x,a6,12x,a5,15x,a7,19x,a3,17x,a5,17x,a5,17x,a5)' )   &
+               &         'timestep', 'number', 'xi,yj','lon,lat','u,v','uo,vo','ua,va','ui,vi'
+         ENDIF
       ENDIF
       DO WHILE( ASSOCIATED(this) )
@@ -685,5 +689,5 @@
       inbergs = ibergs
       CALL mpp_sum('icbutl', inbergs)
-      IF( ibergs > 0 )   WRITE(numicb,'(a," there are",i5," bergs out of",i6," on PE ",i4)')   &
+      IF( ibergs > 0 .AND. numicb /= -1)   WRITE(numicb,'(a," there are",i5," bergs out of",i6," on PE ",i4)')   &
          &                                  cd_label, ibergs, inbergs, narea
       !
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/iom.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/iom.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/iom.F90	(revision 10968)
@@ -321,5 +321,5 @@
         ENDIF
 !set name of the restart file and enable available fields
-        if(lwp) WRITE(numout,*) 'Setting restart filename (for XIOS) to: ',rst_file
+        if(lwp .AND. nprint > 1) WRITE(numout,*) 'Setting restart filename (for XIOS) to: ',rst_file
         CALL xios_get_handle("file_definition", filegroup_hdl )
         CALL xios_add_child(filegroup_hdl, file_hdl, 'rrestart')
@@ -346,5 +346,5 @@
                         scalar_ref = "grid_scalar", operation = "instant")
                 END SELECT
-                IF(lwp) WRITE(numout,*) 'XIOS read: ', TRIM(rst_rfields(i)%vname), ' enabled in ', TRIM(rst_file)
+                IF(lwp .AND. nprint > 1) WRITE(numout,*) 'XIOS read: ', TRIM(rst_rfields(i)%vname), ' enabled in ', TRIM(rst_file)
            ENDIF
          ENDIF
@@ -537,5 +537,5 @@
 
 !set name of the restart file and enable available fields
-        IF(lwp) WRITE(numout,*) 'Setting restart filename (for XIOS write) to: ',cdrst_file
+        IF(lwp .AND. nprint > 1) WRITE(numout,*) 'Setting restart filename (for XIOS write) to: ',cdrst_file
         CALL xios_get_handle("file_definition", filegroup_hdl )
         CALL xios_add_child(filegroup_hdl, file_hdl, 'wrestart')
@@ -543,9 +543,9 @@
            CALL xios_set_file_attr( "wrestart", type="one_file", enabled=.TRUE.,& 
                                     mode="write", output_freq=xios_timestep) 
-           if(lwp) write(numout,*) 'OPEN ', trim(cdrst_file), ' in one_file mode' 
+           if(lwp .AND. nprint > 1) write(numout,*) 'OPEN ', trim(cdrst_file), ' in one_file mode' 
         ELSE  
            CALL xios_set_file_attr( "wrestart", type="multiple_file", enabled=.TRUE.,& 
                                     mode="write", output_freq=xios_timestep) 
-           if(lwp) write(numout,*) 'OPEN ', trim(cdrst_file), ' in multiple_file mode' 
+           if(lwp .AND. nprint > 1) write(numout,*) 'OPEN ', trim(cdrst_file), ' in multiple_file mode' 
         ENDIF 
         CALL xios_set_file_attr( "wrestart", name=trim(cdrst_file))
@@ -824,5 +824,6 @@
                iom_file(jf)%nfid       = 0          ! free the id 
                IF( PRESENT(kiomid) )   kiomid = 0   ! return 0 as id to specify that the file was closed
-               IF(lwp) WRITE(numout,*) TRIM(clinfo)//' close file: '//TRIM(iom_file(jf)%name)//' ok'
+               IF(lwp  .AND. nprint > 1) &
+                 WRITE(numout,*) TRIM(clinfo)//' close file: '//TRIM(iom_file(jf)%name)//' ok'
             ELSEIF( PRESENT(kiomid) ) THEN
                WRITE(ctmp1,*) '--->',  kiomid
@@ -941,5 +942,5 @@
       ELSE
 #if defined key_iomput
-         IF(lwp) WRITE(numout,*) 'XIOS RST READ (0D): ', trim(cdvar)
+         IF(lwp .AND. nprint > 1) WRITE(numout,*) 'XIOS RST READ (0D): ', trim(cdvar)
          CALL iom_swap( TRIM(crxios_context) )
          CALL xios_recv_field( trim(cdvar), pvar)
@@ -1266,5 +1267,6 @@
 
             IF( istop == nstop ) THEN   ! no additional errors until this point...
-               IF(lwp) WRITE(numout,"(10x,' read ',a,' (rec: ',i6,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name)
+               IF(lwp .AND. nprint > 1) &
+                  WRITE(numout,"(10x,' read ',a,' (rec: ',i6,') in ',a,' ok')") TRIM(cdvar), itime, TRIM(iom_file(kiomid)%name)
              
                !--- overlap areas and extra hallows (mpp)
@@ -1296,5 +1298,5 @@
          IF( PRESENT(pv_r3d) ) THEN
             pv_r3d(:, :, :) = 0.
-            if(lwp) write(numout,*) 'XIOS RST READ (3D): ',trim(cdvar)
+            if(lwp .AND. nprint > 1) write(numout,*) 'XIOS RST READ (3D): ',trim(cdvar)
             CALL xios_recv_field( trim(cdvar), pv_r3d)
             IF(idom /= jpdom_unknown ) then
@@ -1303,5 +1305,5 @@
          ELSEIF( PRESENT(pv_r2d) ) THEN
             pv_r2d(:, :) = 0.
-            if(lwp) write(numout,*) 'XIOS RST READ (2D): ', trim(cdvar)
+            if(lwp .AND. nprint > 1) write(numout,*) 'XIOS RST READ (2D): ', trim(cdvar)
             CALL xios_recv_field( trim(cdvar), pv_r2d)
             IF(idom /= jpdom_unknown ) THEN
@@ -1310,5 +1312,5 @@
          ELSEIF( PRESENT(pv_r1d) ) THEN
             pv_r1d(:) = 0.
-            if(lwp) write(numout,*) 'XIOS RST READ (1D): ', trim(cdvar)
+            if(lwp .AND. nprint > 1) write(numout,*) 'XIOS RST READ (1D): ', trim(cdvar)
             CALL xios_recv_field( trim(cdvar), pv_r1d)
          ENDIF
@@ -1512,5 +1514,5 @@
 #ifdef key_iomput
       IF( kt == kwrite ) THEN
-          IF(lwp) write(numout,*) 'RESTART: write (XIOS 0D) ',trim(cdvar)
+          IF(lwp .AND. nprint > 1) write(numout,*) 'RESTART: write (XIOS 0D) ',trim(cdvar)
           CALL xios_send_field(trim(cdvar), pvar)
       ENDIF
@@ -1542,5 +1544,5 @@
 #ifdef key_iomput
       IF( kt == kwrite ) THEN
-         IF(lwp) write(numout,*) 'RESTART: write (XIOS 1D) ',trim(cdvar)
+         IF(lwp .AND. nprint > 1) write(numout,*) 'RESTART: write (XIOS 1D) ',trim(cdvar)
          CALL xios_send_field(trim(cdvar), pvar)
       ENDIF
@@ -1572,5 +1574,5 @@
 #ifdef key_iomput
       IF( kt == kwrite ) THEN
-         IF(lwp) write(numout,*) 'RESTART: write (XIOS 2D) ',trim(cdvar)
+         IF(lwp .AND. nprint > 1) write(numout,*) 'RESTART: write (XIOS 2D) ',trim(cdvar)
          CALL xios_send_field(trim(cdvar), pvar)
       ENDIF
@@ -1602,5 +1604,5 @@
 #ifdef key_iomput
       IF( kt == kwrite ) THEN
-         IF(lwp) write(numout,*) 'RESTART: write (XIOS 3D) ',trim(cdvar)
+         IF(lwp .AND. nprint > 1) write(numout,*) 'RESTART: write (XIOS 3D) ',trim(cdvar)
          CALL xios_send_field(trim(cdvar), pvar)
       ENDIF
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/iom_nf90.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/iom_nf90.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/iom_nf90.F90	(revision 10968)
@@ -88,5 +88,5 @@
          !                                       !=========================!
          IF( ldwrt ) THEN  ! ... in write mode
-            IF(lwp) WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in WRITE mode'
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in WRITE mode'
             IF( snc4set%luse ) THEN
                CALL iom_nf90_check(NF90_OPEN( TRIM(cdname), NF90_WRITE  , if90id ), clinfo)
@@ -96,5 +96,5 @@
             CALL iom_nf90_check(NF90_SET_FILL( if90id, NF90_NOFILL, idmy                          ), clinfo)
          ELSE              ! ... in read mode
-            IF(lwp) WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in READ mode'
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) TRIM(clinfo)//' open existing file: '//TRIM(cdname)//' in READ mode'
             CALL iom_nf90_check(NF90_OPEN( TRIM(cdname), NF90_NOWRITE, if90id, chunksize = ichunk ), clinfo)
          ENDIF
@@ -107,5 +107,5 @@
                cdname = TRIM(cltmp)
             ENDIF
-            IF(lwp) WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode'
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) TRIM(clinfo)//' create new file: '//TRIM(cdname)//' in WRITE mode'
 
             IF( llclobber ) THEN   ;   imode = IOR( NF90_64BIT_OFFSET, NF90_CLOBBER   )
@@ -113,5 +113,5 @@
             ENDIF
             IF( snc4set%luse ) THEN
-               IF(lwp) WRITE(numout,*) TRIM(clinfo)//' creating file: '//TRIM(cdname)//' in hdf5 (netcdf4) mode'
+               IF(lwp .AND. nprint > 0) WRITE(numout,*) TRIM(clinfo)//' creating file: '//TRIM(cdname)//' in hdf5 (netcdf4) mode'
                CALL GET_NF90_SYMBOL("NF90_HDF5", ihdf5)
                IF( llclobber ) THEN   ;   imode = IOR(ihdf5, NF90_CLOBBER)
@@ -165,5 +165,5 @@
                &                                       len  = iom_file(kiomid)%lenuld ), clinfo )
          ENDIF
-         IF(lwp) WRITE(numout,*) '                   ---> '//TRIM(cdname)//' OK'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '                   ---> '//TRIM(cdname)//' OK'
       ELSE
          kiomid = 0               ! return error flag
@@ -562,5 +562,5 @@
          ! trick: defined to 0 to say that dimension variables are defined but not yet written
          iom_file(kiomid)%dimsz(1, 1)  = 0   
-         IF(lwp) WRITE(numout,*) TRIM(clinfo)//' define dimension variables done'
+         IF(lwp .AND. nprint > 1) WRITE(numout,*) TRIM(clinfo)//' define dimension variables done'
       ENDIF
       ! define the data if it is not already done
@@ -637,7 +637,7 @@
             CALL iom_nf90_check(SET_NF90_DEF_VAR_CHUNKING(if90id, idvar, ichunkalg, ichunksz), clinfo)
             CALL iom_nf90_check(SET_NF90_DEF_VAR_DEFLATE(if90id, idvar, ishuffle, ideflate, ideflate_level), clinfo)
-            IF(lwp) WRITE(numout,*) TRIM(clinfo)//' chunked ok. Chunks sizes: ', ichunksz
-         ENDIF
-         IF(lwp) WRITE(numout,*) TRIM(clinfo)//' defined ok'
+            IF(lwp .AND. nprint > 1) WRITE(numout,*) TRIM(clinfo)//' chunked ok. Chunks sizes: ', ichunksz
+         ENDIF
+         IF(lwp .AND. nprint > 1) WRITE(numout,*) TRIM(clinfo)//' defined ok'
       ELSE
          idvar = kvid
@@ -685,5 +685,5 @@
                CALL iom_nf90_check( NF90_INQUIRE_DIMENSION( if90id, 3, len = iom_file(kiomid)%dimsz(1,3) ), clinfo )
                iom_file(kiomid)%dimsz(1  , 4) = 1   ! unlimited dimension
-               IF(lwp) WRITE(numout,*) TRIM(clinfo)//' write dimension variables done'
+               IF(lwp .AND. nprint > 1) WRITE(numout,*) TRIM(clinfo)//' write dimension variables done'
             ENDIF
          ENDIF
@@ -703,5 +703,5 @@
          IF( iom_file(kiomid)%luld(idvar) )   iom_file(kiomid)%dimsz(iom_file(kiomid)%ndims(idvar), idvar)    &
                &                            = iom_file(kiomid)%dimsz(iom_file(kiomid)%ndims(idvar), idvar) + 1
-         IF(lwp) WRITE(numout,*) TRIM(clinfo)//' written ok'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) TRIM(clinfo)//' written ok'
       ENDIF
       !     
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/restart.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/restart.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/IOM/restart.F90	(revision 10968)
@@ -95,5 +95,5 @@
             clpath = TRIM(cn_ocerst_outdir)
             IF( clpath(LEN_TRIM(clpath):) /= '/' ) clpath = TRIM(clpath) // '/'
-            IF(lwp) THEN
+            IF(lwp .AND. nprint > 1) THEN
                WRITE(numout,*)
                IF(.NOT.lwxios) THEN
@@ -223,5 +223,5 @@
              crxios_context = 'nemo_rst'
              IF( .NOT.lxios_set ) THEN
-                 IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS'
+                 IF(lwp .AND. nprint > 0) WRITE(numout,*) 'Enable restart reading by XIOS'
                  CALL iom_init( crxios_context, ld_tmppatch = .false. )
                  lxios_set = .TRUE.
@@ -230,5 +230,5 @@
          IF( TRIM(Agrif_CFixed()) /= '0' .AND. lrxios) THEN
              CALL iom_init( crxios_context, ld_tmppatch = .false. )
-             IF(lwp) WRITE(numout,*) 'Enable restart reading by XIOS for AGRIF'
+             IF(lwp .AND. nprint > 0) WRITE(numout,*) 'Enable restart reading by XIOS for AGRIF'
              lxios_set = .TRUE.
          ENDIF 
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LBC/lib_mpp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LBC/lib_mpp.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LBC/lib_mpp.F90	(revision 10968)
@@ -322,5 +322,5 @@
       mynode = mpprank
 
-      IF( mynode == 0 ) THEN
+      IF( mynode == 0 .AND. nprint > 2) THEN
          CALL ctl_opn( kumond, TRIM(ldname), 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, 6, .FALSE. , 1 )
          WRITE(kumond, nammpp)      
@@ -1517,5 +1517,5 @@
             crname_dlg(n_sequence_dlg) = cdname     ! keep the name of the calling routine
          ENDIF
-      ELSE IF ( ncom_stp == nit000+2*ncom_freq ) THEN
+      ELSE IF ( ncom_stp == nit000+2*ncom_freq .AND. nprint > 1 ) THEN
          CALL ctl_opn( numcom, 'communication_report.txt', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE., narea )
          WRITE(numcom,*) ' '
@@ -1986,5 +1986,5 @@
          &  OPEN(UNIT=knum,FILE='NUL', FORM=cdform, ACCESS=cdacce, STATUS=cdstat                      , ERR=100, IOSTAT=iost )   
       IF( iost == 0 ) THEN
-         IF(ldwp) THEN
+         IF(ldwp .AND. nprint > 2) THEN
             WRITE(kout,*) '     file   : ', TRIM(clfile),' open ok'
             WRITE(kout,*) '     unit   = ', knum
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LBC/mppini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LBC/mppini.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LBC/mppini.F90	(revision 10968)
@@ -168,5 +168,5 @@
       !!----------------------------------------------------------------------
 
-      llwrtlay = lwp .OR. ln_ctl .OR. sn_cfctl%l_layout
+      llwrtlay = (lwp.AND.nprint>1).OR. ln_ctl .OR. sn_cfctl%l_layout
       ! do we need to take into account bdy_msk?
       REWIND( numnam_ref )              ! Namelist nambdy in reference namelist : BDY
@@ -490,5 +490,5 @@
       ! 5. Subdomain print
       ! ------------------
-      IF(lwp) THEN
+      IF(lwp .AND. nprint > 1) THEN
          ifreq = 4
          il1 = 1
@@ -629,5 +629,5 @@
       !
       nproc = narea-1
-      IF(lwp) THEN
+      IF(lwp .AND. nprint > 0) THEN
          WRITE(numout,*)
          WRITE(numout,*) '   resulting internal parameters : '
@@ -1165,5 +1165,5 @@
       idid(2) = 2
 
-      IF(lwp) THEN
+      IF(lwp .AND. nprint > 0) THEN
           WRITE(numout,*)
           WRITE(numout,*) 'mpp_init_ioipsl :   iloc  = ', iloc (1), iloc (2)
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LDF/ldfdyn.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LDF/ldfdyn.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LDF/ldfdyn.F90	(revision 10968)
@@ -122,5 +122,5 @@
       READ  ( numnam_cfg, namdyn_ldf, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namdyn_ldf in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namdyn_ldf )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namdyn_ldf )
 
       IF(lwp) THEN                      ! Parameter print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LDF/ldftra.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LDF/ldftra.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/LDF/ldftra.F90	(revision 10968)
@@ -158,5 +158,5 @@
       READ  ( numnam_cfg, namtra_ldf, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtra_ldf in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namtra_ldf )
+      IF(lwm .AND. nprint > 2) WRITE( numond, namtra_ldf )
       !
       IF(lwp) THEN                      ! control print
@@ -517,5 +517,5 @@
       READ  ( numnam_cfg, namtra_eiv, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtra_eiv in configuration namelist', lwp )
-      IF(lwm)  WRITE ( numond, namtra_eiv )
+      IF(lwm .AND. nprint > 2)  WRITE ( numond, namtra_eiv )
 
       IF(lwp) THEN                      ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/OBS/diaobs.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/OBS/diaobs.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/OBS/diaobs.F90	(revision 10968)
@@ -207,5 +207,5 @@
       READ  ( numnam_cfg, namobs, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namobs in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namobs )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namobs )
 
       IF( .NOT.ln_diaobs ) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/fldread.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/fldread.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/fldread.F90	(revision 10968)
@@ -195,5 +195,5 @@
                ENDIF
          END DO
-         IF( lwp ) CALL wgt_print()                ! control print
+         IF( lwp .AND. nprint > 1) CALL wgt_print()                ! control print
       ENDIF
       !                                            ! ====================================== !
@@ -298,5 +298,5 @@
             !
             IF( sd(jf)%ln_tint ) THEN              ! temporal interpolation
-               IF(lwp .AND. kt - nit000 <= 100 ) THEN 
+               IF(lwp .AND. nprint > 1 ) THEN 
                   clfmt = "('   fld_read: var ', a, ' kt = ', i8, ' (', f9.4,' days), Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," //   &
                      &    "', records b/a: ', i6.4, '/', i6.4, ' (days ', f9.4,'/', f9.4, ')')"
@@ -310,5 +310,5 @@
                sd(jf)%fnow(:,:,:) = ztintb * sd(jf)%fdta(:,:,:,1) + ztinta * sd(jf)%fdta(:,:,:,2)
             ELSE   ! nothing to do...
-               IF(lwp .AND. kt - nit000 <= 100 ) THEN
+               IF(lwp .AND. nprint > 1 ) THEN
                   clfmt = "('   fld_read: var ', a, ' kt = ', i8,' (', f9.4,' days), Y/M/D = ', i4.4,'/', i2.2,'/', i2.2," //   &
                      &    "', record: ', i6.4, ' (days ', f9.4, ' <-> ', f9.4, ')')"
@@ -440,5 +440,5 @@
          !
          clfmt = "('   fld_init : time-interpolation for ', a, ' read previous record = ', i6, ' at time = ', f7.2, ' days')"
-         IF(lwp) WRITE(numout, clfmt) TRIM(sdjf%clvar), sdjf%nrec_a(1), REAL(sdjf%nrec_a(2),wp)/rday
+         IF(lwp .AND. nprint > 1) WRITE(numout, clfmt) TRIM(sdjf%clvar), sdjf%nrec_a(1), REAL(sdjf%nrec_a(2),wp)/rday
          !
       ENDIF
@@ -762,6 +762,6 @@
       ENDIF
 
-      IF(lwp) WRITE(numout,*) 'Dim size for ',        TRIM(clvar),' is ', ilendta
-      IF(lwp) WRITE(numout,*) 'Number of levels for ',TRIM(clvar),' is ', ipk
+      IF(lwp.AND. nprint > 1) WRITE(numout,*) 'Dim size for ',        TRIM(clvar),' is ', ilendta
+      IF(lwp.AND. nprint > 1) WRITE(numout,*) 'Number of levels for ',TRIM(clvar),' is ', ipk
       !
       SELECT CASE( ipk )
@@ -908,5 +908,5 @@
                      WRITE(ibstr,"(I10.10)") map%ptr(ib) 
                      CALL ctl_warn('fld_bdy_interp: U depths differ between grids at BDY point '//TRIM(ibstr)//' by more than 1%')
-                     IF(lwp) WRITE(*,*) 'DEPTHU', zh, sum(e3u_n(zij,zjj,:), mask=umask(zij,zjj,:)==1),  sum(umask(zij,zjj,:)), &
+                     IF(lwp .AND. nprint > 1) WRITE(*,*) 'DEPTHU', zh, sum(e3u_n(zij,zjj,:), mask=umask(zij,zjj,:)==1),  sum(umask(zij,zjj,:)), &
                        &                hu_n(zij,zjj), map%ptr(ib), ib, zij, zjj, narea-1  , &
                         &                dta_read(map%ptr(ib),1,:)
@@ -1174,5 +1174,5 @@
                      END DO
                      sd(ju)%rotn(jn) = .TRUE.               ! vector was rotated 
-                     IF( lwp .AND. kt == nit000 )   WRITE(numout,*)   &
+                     IF( lwp .AND. kt == nit000 .AND. nprint > 1)   WRITE(numout,*)   &
                         &   'fld_read: vector pair ('//TRIM(sd(ju)%clvar)//', '//TRIM(sd(iv)%clvar)//') rotated on to model grid'
                   ENDIF
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcapr.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcapr.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcapr.F90	(revision 10968)
@@ -76,5 +76,5 @@
       READ  ( numnam_cfg, namsbc_apr, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_apr in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsbc_apr )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_apr )
       !
       ALLOCATE( sf_apr(1), STAT=ierror )           !* allocate and fill sf_sst (forcing structure) with sn_sst
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcblk.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcblk.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcblk.F90	(revision 10968)
@@ -188,5 +188,5 @@
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_blk in configuration namelist', lwp )
       !
-      IF(lwm) WRITE( numond, namsbc_blk )
+      IF(lwm .AND. nprint > 2) WRITE( numond, namsbc_blk )
       !
       !                             !** initialization of the chosen bulk formulae (+ check)
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbccpl.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbccpl.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbccpl.F90	(revision 10968)
@@ -271,5 +271,5 @@
       READ  ( numnam_cfg, namsbc_cpl, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_cpl in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsbc_cpl )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_cpl )
       !
       IF(lwp) THEN                        ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcflx.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcflx.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcflx.F90	(revision 10968)
@@ -98,5 +98,5 @@
          READ  ( numnam_cfg, namsbc_flx, IOSTAT = ios, ERR = 902 )
 902      IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_flx in configuration namelist', lwp )
-         IF(lwm) WRITE ( numond, namsbc_flx ) 
+         IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_flx ) 
          !
          !                                         ! check: do we plan to use ln_dm2dc with non-daily forcing?
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcfwb.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcfwb.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcfwb.F90	(revision 10968)
@@ -187,5 +187,5 @@
             erp(:,:) = erp(:,:) + zerp_cor(:,:)
             !
-            IF( nprint == 1 .AND. lwp ) THEN                   ! control print
+            IF( nprint > 3 .AND. lwp ) THEN                   ! control print
                IF( z_fwf < 0._wp ) THEN
                   WRITE(numout,*)'   z_fwf < 0'
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcice_cice.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcice_cice.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcice_cice.F90	(revision 10968)
@@ -769,5 +769,5 @@
          READ  ( numnam_cfg, namsbc_cice, IOSTAT = ios, ERR = 902 )
 902      IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_cice in configuration namelist', lwp )
-         IF(lwm) WRITE ( numond, namsbc_cice )
+         IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_cice )
 
          ! store namelist information in an array
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcice_if.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcice_if.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcice_if.F90	(revision 10968)
@@ -81,5 +81,5 @@
          READ  ( numnam_cfg, namsbc_iif, IOSTAT = ios, ERR = 902 )
 902      IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_iif in configuration namelist', lwp )
-         IF(lwm) WRITE ( numond, namsbc_iif )
+         IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_iif )
 
          ALLOCATE( sf_ice(1), STAT=ierror )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcisf.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcisf.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcisf.F90	(revision 10968)
@@ -206,5 +206,5 @@
          IF( ln_rstart .AND.    &                     ! Restart: read in restart file
             &   iom_varid( numror, 'fwf_isf_b', ldstop = .FALSE. ) > 0 ) THEN
-            IF(lwp) WRITE(numout,*) '          nit000-1 isf tracer content forcing fields read in the restart file'
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) '          nit000-1 isf tracer content forcing fields read in the restart file'
             CALL iom_get( numror, jpdom_autoglo, 'fwf_isf_b', fwfisf_b(:,:)         , ldxios = lrxios )   ! before salt content isf_tsc trend
             CALL iom_get( numror, jpdom_autoglo, 'isf_sc_b' , risf_tsc_b(:,:,jp_sal), ldxios = lrxios )   ! before salt content isf_tsc trend
@@ -217,8 +217,8 @@
       ! 
       IF( lrst_oce ) THEN
-         IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'sbc : isf surface tracer content forcing fields written in ocean restart file ',   &
+         IF(lwp .AND. nprint > 0) WRITE(numout,*)
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) 'sbc : isf surface tracer content forcing fields written in ocean restart file ',   &
             &                    'at it= ', kt,' date= ', ndastp
-         IF(lwp) WRITE(numout,*) '~~~~'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '~~~~'
          IF( lwxios ) CALL iom_swap(      cwxios_context          )
          CALL iom_rstput( kt, nitrst, numrow, 'fwf_isf_b', fwfisf(:,:)         , ldxios = lwxios )
@@ -283,5 +283,5 @@
       READ  ( numnam_cfg, namsbc_isf, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_isf in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsbc_isf )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_isf )
 
       IF(lwp) WRITE(numout,*)
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcmod.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcmod.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcmod.F90	(revision 10968)
@@ -114,5 +114,5 @@
       READ  ( numnam_cfg, namsbc, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namsbc )
+      IF(lwm .AND. nprint > 2) WRITE( numond, namsbc )
       !
 #if defined key_mpp_mpi
@@ -495,5 +495,5 @@
          IF( ln_rstart .AND.    &                               !* Restart: read in restart file
             & iom_varid( numror, 'utau_b', ldstop = .FALSE. ) > 0 ) THEN
-            IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields red in the restart file'
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) '          nit000-1 surface forcing fields red in the restart file'
             CALL iom_get( numror, jpdom_autoglo, 'utau_b', utau_b, ldxios = lrxios )   ! before i-stress  (U-point)
             CALL iom_get( numror, jpdom_autoglo, 'vtau_b', vtau_b, ldxios = lrxios )   ! before j-stress  (V-point)
@@ -520,8 +520,8 @@
       IF( lrst_oce ) THEN                              !      Write in the ocean restart file     !
          !                                             ! ---------------------------------------- !
-         IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'sbc : ocean surface forcing fields written in ocean restart file ',   &
+         IF(lwp .AND. nprint > 0) WRITE(numout,*)
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) 'sbc : ocean surface forcing fields written in ocean restart file ',   &
             &                    'at it= ', kt,' date= ', ndastp
-         IF(lwp) WRITE(numout,*) '~~~~'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '~~~~'
          IF( lwxios ) CALL iom_swap(      cwxios_context          )
          CALL iom_rstput( kt, nitrst, numrow, 'utau_b' , utau, ldxios = lwxios )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcrnf.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcrnf.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcrnf.F90	(revision 10968)
@@ -146,10 +146,10 @@
          IF( ln_rstart .AND.    &                               !* Restart: read in restart file
             & iom_varid( numror, 'rnf_b', ldstop = .FALSE. ) > 0 ) THEN
-            IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields red in the restart file', lrxios
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) '          nit000-1 runoff forcing fields red in the restart file', lrxios
             CALL iom_get( numror, jpdom_autoglo, 'rnf_b', rnf_b, ldxios = lrxios )     ! before runoff
             CALL iom_get( numror, jpdom_autoglo, 'rnf_hc_b', rnf_tsc_b(:,:,jp_tem), ldxios = lrxios )   ! before heat content of runoff
             CALL iom_get( numror, jpdom_autoglo, 'rnf_sc_b', rnf_tsc_b(:,:,jp_sal), ldxios = lrxios )   ! before salinity content of runoff
          ELSE                                                   !* no restart: set from nit000 values
-            IF(lwp) WRITE(numout,*) '          nit000-1 runoff forcing fields set to nit000'
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) '          nit000-1 runoff forcing fields set to nit000'
             rnf_b    (:,:  ) = rnf    (:,:  )
             rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:)
@@ -159,8 +159,8 @@
       IF( lrst_oce ) THEN                              !      Write in the ocean restart file     !
          !                                             ! ---------------------------------------- !
-         IF(lwp) WRITE(numout,*)
-         IF(lwp) WRITE(numout,*) 'sbcrnf : runoff forcing fields written in ocean restart file ',   &
+         IF(lwp .AND. nprint > 0) WRITE(numout,*)
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) 'sbcrnf : runoff forcing fields written in ocean restart file ',   &
             &                    'at it= ', kt,' date= ', ndastp
-         IF(lwp) WRITE(numout,*) '~~~~'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '~~~~'
          IF( lwxios ) CALL iom_swap(      cwxios_context          )
          CALL iom_rstput( kt, nitrst, numrow, 'rnf_b' , rnf, ldxios = lwxios )
@@ -272,5 +272,5 @@
       READ  ( numnam_cfg, namsbc_rnf, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_rnf in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsbc_rnf )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_rnf )
       !
       !                                         ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcssr.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcssr.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcssr.F90	(revision 10968)
@@ -171,5 +171,5 @@
       READ  ( numnam_cfg, namsbc_ssr, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_ssr in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsbc_ssr )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_ssr )
 
       IF(lwp) THEN                 !* control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcwave.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcwave.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/sbcwave.F90	(revision 10968)
@@ -402,5 +402,5 @@
       READ  ( numnam_cfg, namsbc_wave, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namsbc_wave in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsbc_wave )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsbc_wave )
       !
       IF( ln_cdgw ) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/tideini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/tideini.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/SBC/tideini.F90	(revision 10968)
@@ -65,5 +65,5 @@
       READ  ( numnam_cfg, nam_tide, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nam_tide in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nam_tide )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nam_tide )
       !
       IF( ln_tide ) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/STO/stopar.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/STO/stopar.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/STO/stopar.F90	(revision 10968)
@@ -268,5 +268,5 @@
       READ  ( numnam_cfg, namsto, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namsto in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namsto )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namsto )
 
       IF( .NOT.ln_rststo ) THEN   ! no use of stochastic parameterization
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/eosbn2.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/eosbn2.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/eosbn2.F90	(revision 10968)
@@ -1240,5 +1240,5 @@
       READ  ( numnam_cfg, nameos, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nameos in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, nameos )
+      IF(lwm .AND. nprint > 2) WRITE( numond, nameos )
       !
       rau0        = 1026._wp                 !: volumic mass of reference     [kg/m3]
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/traadv.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/traadv.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/traadv.F90	(revision 10968)
@@ -201,5 +201,5 @@
       READ  ( numnam_cfg, namtra_adv, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtra_adv in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namtra_adv )
+      IF(lwm  .AND. nprint > 2) WRITE( numond, namtra_adv )
       !
       IF(lwp) THEN                           ! Namelist print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trabbc.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trabbc.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trabbc.F90	(revision 10968)
@@ -140,5 +140,5 @@
       READ  ( numnam_cfg, nambbc, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nambbc in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nambbc )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nambbc )
       !
       IF(lwp) THEN                     ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trabbl.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trabbl.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trabbl.F90	(revision 10968)
@@ -490,5 +490,5 @@
       READ  ( numnam_cfg, nambbl, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'nambbl in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, nambbl )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, nambbl )
       !
       l_bbl = .TRUE.                 !* flag to compute bbl coef and transport
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/tradmp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/tradmp.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/tradmp.F90	(revision 10968)
@@ -184,5 +184,5 @@
       READ  ( numnam_cfg, namtra_dmp, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtra_dmp in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namtra_dmp )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namtra_dmp )
       !
       IF(lwp) THEN                  ! Namelist print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/tramle.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/tramle.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/tramle.F90	(revision 10968)
@@ -273,5 +273,5 @@
       READ  ( numnam_cfg, namtra_mle, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtra_mle in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namtra_mle )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namtra_mle )
 
       IF(lwp) THEN                     ! Namelist print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/traqsr.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/traqsr.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/traqsr.F90	(revision 10968)
@@ -135,5 +135,5 @@
 !!gm case neuler  not taken into account....
          IF( ln_rstart .AND. iom_varid( numror, 'qsr_hc_b', ldstop = .FALSE. ) > 0 ) THEN    ! read in restart
-            IF(lwp) WRITE(numout,*) '          nit000-1 qsr tracer content forcing field read in the restart file'
+            IF(lwp .AND. nprint >0) WRITE(numout,*) '          nit000-1 qsr tracer content forcing field read in the restart file'
             z1_2 = 0.5_wp
             CALL iom_get( numror, jpdom_autoglo, 'qsr_hc_b', qsr_hc_b, ldxios = lrxios )   ! before heat content trend due to Qsr flux
@@ -343,5 +343,5 @@
       READ  ( numnam_cfg, namtra_qsr, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtra_qsr in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namtra_qsr )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namtra_qsr )
       !
       IF(lwp) THEN                ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trasbc.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trasbc.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRA/trasbc.F90	(revision 10968)
@@ -107,5 +107,5 @@
          IF( ln_rstart .AND.    &               ! Restart: read in restart file
               & iom_varid( numror, 'sbc_hc_b', ldstop = .FALSE. ) > 0 ) THEN
-            IF(lwp) WRITE(numout,*) '          nit000-1 sbc tracer content field read in the restart file'
+            IF(lwp .AND. nprint > 0) WRITE(numout,*) '          nit000-1 sbc tracer content field read in the restart file'
             zfact = 0.5_wp
             sbc_tsc(:,:,:) = 0._wp
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRD/trdini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRD/trdini.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRD/trdini.F90	(revision 10968)
@@ -53,5 +53,5 @@
       READ  ( numnam_cfg, namtrd, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtrd in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namtrd )
+      IF(lwm .AND. nprint > 2) WRITE( numond, namtrd )
       !
       IF(lwp) THEN                  ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRD/trdmxl.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRD/trdmxl.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/TRD/trdmxl.F90	(revision 10968)
@@ -739,5 +739,5 @@
       READ  ( numnam_cfg, namtrd_mxl, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtrd_mxl in configuration namelist', lwp )
-      IF(lwm) WRITE( numond, namtrd_mxl )
+      IF(lwm .AND. nprint > 2) WRITE( numond, namtrd_mxl )
       !
       IF(lwp) THEN                      ! control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/USR/usrdef_hgr.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/USR/usrdef_hgr.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/USR/usrdef_hgr.F90	(revision 10968)
@@ -107,5 +107,5 @@
          CALL ctl_warn( ' GYRE used as Benchmark: e1=e2=106km, no need to adjust rdt, ahm,aht ' )
       ENDIF
-      IF( nprint==1 .AND. lwp )   THEN
+      IF( nprint > 3 .AND. lwp )   THEN
          WRITE(numout,*) 'ze1', ze1, 'cosalpha', zcos_alpha, 'sinalpha', zsin_alpha
          WRITE(numout,*) 'ze1deg', ze1deg, 'zlam0', zlam0, 'zphi0', zphi0
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfdrg.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfdrg.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfdrg.F90	(revision 10968)
@@ -242,5 +242,5 @@
       READ  ( numnam_cfg, namdrg, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam( ios , 'namdrg in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namdrg )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namdrg )
       !
       IF(lwp) THEN
@@ -343,6 +343,6 @@
       IF(ll_bot)   READ  ( numnam_cfg, namdrg_bot, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam( ios , TRIM(cl_namcfg), lwp )
-      IF(lwm .AND. ll_top)   WRITE ( numond, namdrg_top )
-      IF(lwm .AND. ll_bot)   WRITE ( numond, namdrg_bot )
+      IF(lwm .AND. ll_top .AND. nprint > 2)   WRITE ( numond, namdrg_top )
+      IF(lwm .AND. ll_bot .AND. nprint > 2)   WRITE ( numond, namdrg_bot )
       !
       IF(lwp) THEN
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfgls.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfgls.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfgls.F90	(revision 10968)
@@ -864,5 +864,5 @@
       READ  ( numnam_cfg, namzdf_gls, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namzdf_gls in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namzdf_gls )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namzdf_gls )
 
       IF(lwp) THEN                     !* Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfiwm.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfiwm.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfiwm.F90	(revision 10968)
@@ -429,5 +429,5 @@
       READ  ( numnam_cfg, namzdf_iwm, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namzdf_iwm in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namzdf_iwm )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namzdf_iwm )
       !
       IF(lwp) THEN                  ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfosm.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfosm.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfosm.F90	(revision 10968)
@@ -1391,5 +1391,5 @@
      READ  ( numnam_cfg, namzdf_osm, IOSTAT = ios, ERR = 902 )
 902  IF( ios >  0 ) CALL ctl_nam ( ios , 'namzdf_osm in configuration namelist', lwp )
-     IF(lwm) WRITE ( numond, namzdf_osm )
+     IF(lwm .AND. nprint > 2) WRITE ( numond, namzdf_osm )
 
      IF(lwp) THEN                    ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfphy.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfphy.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfphy.F90	(revision 10968)
@@ -98,5 +98,5 @@
       READ  ( numnam_cfg, namzdf, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namzdf in configuration namelist', lwp )
-      IF(lwm)   WRITE ( numond, namzdf )
+      IF(lwm .AND. nprint > 2)   WRITE ( numond, namzdf )
       !
       IF(lwp) THEN                      ! Parameter print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfric.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfric.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdfric.F90	(revision 10968)
@@ -85,5 +85,5 @@
       READ  ( numnam_cfg, namzdf_ric, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namzdf_ric in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namzdf_ric )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namzdf_ric )
       !
       IF(lwp) THEN                   ! Control print
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdftke.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdftke.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/ZDF/zdftke.F90	(revision 10968)
@@ -663,5 +663,5 @@
       READ  ( numnam_cfg, namzdf_tke, IOSTAT = ios, ERR = 902 )
 902   IF( ios >  0 ) CALL ctl_nam ( ios , 'namzdf_tke in configuration namelist', lwp )
-      IF(lwm) WRITE ( numond, namzdf_tke )
+      IF(lwm .AND. nprint > 2) WRITE ( numond, namzdf_tke )
       !
       ri_cri   = 2._wp    / ( 2._wp + rn_ediss / rn_ediff )   ! resulting critical Richardson number
@@ -797,5 +797,5 @@
       ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN   ! Create restart file
          !                                   ! -------------------
-         IF(lwp) WRITE(numout,*) '---- tke_rst ----'
+         IF(lwp .AND. nprint > 0) WRITE(numout,*) '---- tke_rst ----'
          IF( lwxios ) CALL iom_swap(      cwxios_context          ) 
          CALL iom_rstput( kt, nitrst, numrow, 'en'   , en   , ldxios = lwxios )
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/nemogcm.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/nemogcm.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/nemogcm.F90	(revision 10968)
@@ -100,4 +100,6 @@
    PUBLIC   nemo_alloc  ! needed by TAM
 
+   CHARACTER(lc) ::   cform_start="( /, 'Start run', / ) "     ! flag for output listing
+   CHARACTER(lc) ::   cform_end="( /, 'End run', / ) "     ! flag for output listing
    CHARACTER(lc) ::   cform_aaa="( /, 'AAAAAAAA', / ) "     ! flag for output listing
 
@@ -150,5 +152,5 @@
       CALL mpp_max( 'nemogcm', nstop )
 
-      IF(lwp) WRITE(numout,cform_aaa)   ! Flag AAAAAAA
+      IF(lwp) WRITE(numout, cform_start)   ! Flag AAAAAAA
 
       !                            !-----------------------!
@@ -217,5 +219,5 @@
       !                            !==  finalize the run  ==!
       !                            !------------------------!
-      IF(lwp) WRITE(numout,cform_aaa)        ! Flag AAAAAAA
+      IF(lwp) WRITE(numout, cform_end)        ! Flag AAAAAAA
       !
       IF( nstop /= 0 .AND. lwp ) THEN        ! error print
@@ -295,4 +297,5 @@
          CALL usr_def_nam( cltxt2, clnam, cn_cfg, nn_cfg, jpiglo, jpjglo, jpkglo, jperio )
       ENDIF
+      nprint    = nn_print          ! convert DOCTOR namelist names into OLD names
       !
       !
@@ -343,5 +346,5 @@
       lwp = (narea == 1) .OR. ln_ctl                        ! control of all listing output print
 
-      IF(lwm) THEN               ! write merged namelists from earlier to output namelist 
+      IF(lwm .AND. nprint > 2) THEN               ! write merged namelists from earlier to output namelist 
          !                       ! now that the file has been opened in call to mynode. 
          !                       ! NB: nammpp has already been written in mynode (if lk_mpp_mpi)
@@ -389,5 +392,5 @@
          END DO
          !
-         WRITE(numout,cform_aaa)                                        ! Flag AAAAAAA
+         IF(nprint > 1) WRITE(numout,cform_aaa)                                        ! Flag AAAAAAA
          !
       ENDIF
@@ -494,5 +497,5 @@
       IF( lk_asminc    )   CALL asm_inc_init    ! Initialize assimilation increments
       !
-      IF(lwp) WRITE(numout,cform_aaa)           ! Flag AAAAAAA
+      IF(lwp .AND. nprint > 1) WRITE(numout,cform_aaa)           ! Flag AAAAAAA
       !
       IF( ln_timing    )   CALL timing_stop( 'nemo_init')
@@ -538,5 +541,4 @@
       ENDIF
       !
-      nprint    = nn_print          ! convert DOCTOR namelist names into OLD names
       nictls    = nn_ictls
       nictle    = nn_ictle
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/step.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/step.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/step.F90	(revision 10968)
@@ -307,5 +307,5 @@
       IF( kstp == nit000 ) THEN                          ! 1st time step only
                                         CALL iom_close( numror )   ! close input  ocean restart file
-         IF(lwm)                        CALL FLUSH    ( numond )   ! flush output namelist oce
+         IF(lwm .AND. numond /= -1 )    CALL FLUSH    ( numond )   ! flush output namelist oce
          IF(lwm .AND. numoni /= -1 )    CALL FLUSH    ( numoni )   ! flush output namelist ice (if exist)
       ENDIF
Index: NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/timing.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/timing.F90	(revision 10967)
+++ NEMO/branches/UKMO/NEMO_4.0_mirror_text_diagnostics/src/OCE/timing.F90	(revision 10968)
@@ -373,5 +373,5 @@
       CALL MPI_GATHER( (/compute_time, waiting_time(1), waiting_time(2), elapsed_time/),   &
          &             4, MPI_DOUBLE_PRECISION, timing_glob, 4, MPI_DOUBLE_PRECISION, 0, MPI_COMM_OCE, icode)
-      IF( narea == 1 ) THEN
+      IF( narea == 1 .AND. nprint > 1) THEN
          WRITE(numtime,*) ' '
          WRITE(numtime,*) ' Report on time spent on waiting MPI messages '
