Index: src/mpi_mod.f90
===================================================================
--- src/mpi_mod.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
+++ src/mpi_mod.f90	(revision f55fdcec0773672ab433a3444e31ed64d4599885)
@@ -113,9 +113,12 @@
 ! mp_measure_time   Measure cpu/wall time, write out at end of run
 ! mp_time_barrier   Measure MPI barrier time
+! mp_exact_numpart  Use an extra MPI communication to give the exact number of particles
+!                   to standard output (this does *not* otherwise affect the simulation) 
   logical, parameter :: mp_dbg_mode = .false.
   logical, parameter :: mp_dev_mode = .false.
   logical, parameter :: mp_dbg_out = .false.
   logical, parameter :: mp_time_barrier=.true.
-  logical, parameter :: mp_measure_time=.false. 
+  logical, parameter :: mp_measure_time=.false.
+  logical, parameter :: mp_exact_numpart=.true.
 
 ! for measuring CPU/Wall time
@@ -1979,5 +1982,5 @@
     call MPI_BARRIER(MPI_COMM_WORLD, mp_ierr)
 
-    if (lroot) then
+    if (lroot.and.mp_measure_time) then
       write(*,FMT='(72("#"))')
       WRITE(*,*) "To turn off output of time measurements, set "
Index: src/timemanager_mpi.f90
===================================================================
--- src/timemanager_mpi.f90	(revision 78e62dc004da36ae5da7b3ab5f03e1bd44af4586)
+++ src/timemanager_mpi.f90	(revision f55fdcec0773672ab433a3444e31ed64d4599885)
@@ -111,4 +111,5 @@
   integer :: ix,jy,ldeltat,itage,nage
   integer :: i_nan=0,ii_nan,total_nan_intl=0  !added by mc to check instability in CBL scheme 
+  integer :: numpart_tot_mpi ! for summing particles on all processes
   real :: outnum,weight,prob(maxspec)
   real :: decfact
@@ -137,15 +138,4 @@
 ! Loop over the whole modelling period in time steps of mintime seconds
 !**********************************************************************
-
-
-!  itime=0
-  if (lroot) then
-  !  write(*,45) itime,numpart*mp_partgroup_np,gridtotalunc,wetgridtotalunc,drygridtotalunc
-    write(*,46) float(itime)/3600,itime,numpart*mp_partgroup_np
-
-    if (verbosity.gt.0) then
-      write (*,*) 'timemanager> starting simulation'
-    end if
-  end if ! (lroot)
 
   do itime=0,ideltas,lsynctime
@@ -215,5 +205,4 @@
 
     if (mp_measure_time) call mpif_mtime('getfields',1)
-
 
 
@@ -536,7 +525,22 @@
         if (mp_measure_time) call mpif_mtime('iotime',1)
 
-        if (lroot) write(*,45) itime,numpart*mp_partgroup_np,gridtotalunc,&
-             &wetgridtotalunc,drygridtotalunc
-!      if (lroot) write(*,46) float(itime)/3600,itime,numpart*mp_partgroup_np
+
+! Decide whether to write an estimate of the number of particles released, 
+! or exact number (require MPI reduce operation)
+        numpart_tot_mpi = numpart*mp_partgroup_np
+
+        if (mp_exact_numpart.and..not.(lmpreader.and.lmp_use_reader)) then
+          call MPI_Reduce(numpart, numpart_tot_mpi, 1, MPI_INTEGER, MPI_SUM, id_root, &
+               & mp_comm_used, mp_ierr)
+        endif
+        
+        if (lroot) then
+          write(*,45) itime,numpart_tot_mpi,gridtotalunc,&
+               &wetgridtotalunc,drygridtotalunc
+          if (verbosity.gt.0) then
+            write (*,*) 'timemanager> starting simulation'
+          end if
+        end if
+
 45      format(i13,' SECONDS SIMULATED: ',i13, ' PARTICLES:    Uncertainty: ',3f7.3)
 46      format(' Simulated ',f7.1,' hours (',i13,' s), ',i13, ' particles')
@@ -556,5 +560,4 @@
           call conccalc(itime,weight)
         endif
-
 
 
@@ -771,20 +774,4 @@
     if (cblflag.eq.1) print *,j,itime,'nan_synctime',nan_count,'nan_tl',total_nan_intl  
 
-! TODO: delete for release version?
-!!-------------------------------------------------------------------------------
-! These lines below to test the well-mixed condition, modified by  mc, not to
-! be included in final release:
-! 
-! if (itime.eq.0) then
-! open(551,file='/home/mc/test_cbl/out/WELLMIXEDTEST_CBL_lonlat_9_33_100_3hours_3htp_cd.DAT')
-! open(552,file='/home/mc/test_cbl/out/avg_ol_h_wst_lonlat_9_33_100_3hours_3htp_cd.DAT')
-! end if
-! write(552,'(5F16.7)')itime*1./3600.,avg_wst/well_mixed_norm,avg_ol/well_mixed_norm,avg_h/well_mixed_norm
-! do j=1,25
-!      !write(551,*))itime*1.,h_well/50.*j,well_mixed_vector(j)/well_mixed_norm*50.
-!     avg_air_dens(j)=avg_air_dens(j)/well_mixed_vector(j)
-!     write(551,'(5F16.7)')itime*1.,h_well/25.*j,well_mixed_vector(j)/well_mixed_norm*25.,avg_air_dens(j),0.04*j
-! end do 
-!!------------------------------------------------------------------------------
 
   end do ! itime=0,ideltas,lsynctime
