Index: NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbclv.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbclv.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbclv.F90	(revision 10948)
@@ -179,5 +179,5 @@
       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.NE.-1)   WRITE(numicb,*) 'icb_clv: icnt=', icnt,' on', narea
       !
    END SUBROUTINE  icb_clv
Index: NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbdia.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbdia.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbdia.F90	(revision 10948)
@@ -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_GO8_package_text_diagnostics/src/OCE/ICB/icbdyn.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbdyn.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbdyn.F90	(revision 10948)
@@ -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_GO8_package_text_diagnostics/src/OCE/ICB/icbini.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbini.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbini.F90	(revision 10948)
@@ -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
Index: NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icblbc.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icblbc.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icblbc.F90	(revision 10948)
@@ -194,5 +194,5 @@
       ENDIF
 
-      IF( nn_verbose_level >= 2 ) THEN
+      IF( nn_verbose_level >= 2 .AND. numicb .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .AND. numicb .NE. -1) 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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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 .NE. -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_GO8_package_text_diagnostics/src/OCE/ICB/icbrst.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbrst.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbrst.F90	(revision 10948)
@@ -138,5 +138,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
@@ -145,6 +145,7 @@
          CALL mpp_sum('icbrst', jn)
       ENDIF
-      IF( lwp )   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'
+      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'
       !
       ! Confirm that all areas have a suitable base for assigning new iceberg
@@ -177,5 +178,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
@@ -226,5 +227,5 @@
             WRITE(cl_filename,'(A,"_icebergs_",A,"_restart.nc")') TRIM(cexper), TRIM(ADJUSTL(clkt))
          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)
    
@@ -361,5 +362,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(:) )
@@ -368,5 +369,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(:,:) )
@@ -374,5 +375,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
@@ -416,10 +417,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_GO8_package_text_diagnostics/src/OCE/ICB/icbstp.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbstp.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbstp.F90	(revision 10948)
@@ -86,5 +86,6 @@
       !                                   !* write out time
       ll_verbose = .FALSE.
-      IF( nn_verbose_write > 0 .AND. MOD( kt-1 , nn_verbose_write ) == 0 )   ll_verbose = ( nn_verbose_level >= 0 )
+      IF( nn_verbose_write > 0 .AND. MOD( kt-1 , nn_verbose_write ) == 0 ) &
+         ll_verbose = ( nn_verbose_level >= 0 ) .AND. (numicb /= -1)
       !
       IF( ll_verbose )   WRITE(numicb,9100) nktberg, ndastp, nsec_day
@@ -163,5 +164,5 @@
       IF(lwp) WRITE(numout,'(a,i6)') 'icebergs: icb_end complete', narea
       !
-      IF( nn_verbose_level > 0 ) THEN
+      IF( nn_verbose_level > 0 .AND. numicb.NE.-1 ) THEN
          CALL flush( numicb )
          CLOSE( numicb )
Index: NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbtrj.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbtrj.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbtrj.F90	(revision 10948)
@@ -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_GO8_package_text_diagnostics/src/OCE/ICB/icbutl.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbutl.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/ICB/icbutl.F90	(revision 10948)
@@ -648,8 +648,10 @@
       IF (nn_verbose_level == 0) RETURN
       pt => berg%current_point
-      WRITE(numicb, 9200) kt, berg%number(1), &
+      IF(numicb.NE.-1) THEN
+          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,5 +675,5 @@
       IF (nn_verbose_level == 0) RETURN
       this => first_berg
-      IF( ASSOCIATED(this) ) THEN
+      IF( ASSOCIATED(this) .AND. numicb.NE.-1 ) 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)' )   &
@@ -685,5 +687,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.NE.-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_GO8_package_text_diagnostics/src/OCE/nemogcm.F90
===================================================================
--- NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/nemogcm.F90	(revision 10947)
+++ NEMO/branches/UKMO/NEMO_4.0_GO8_package_text_diagnostics/src/OCE/nemogcm.F90	(revision 10948)
@@ -295,4 +295,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
       !
       !
@@ -538,5 +539,4 @@
       ENDIF
       !
-      nprint    = nn_print          ! convert DOCTOR namelist names into OLD names
       nictls    = nn_ictls
       nictle    = nn_ictle
