Index: src/init_domainfill.f90
===================================================================
--- src/init_domainfill.f90	(revision 7999df4745f1e95cb99454974f5e8f025f991669)
+++ src/init_domainfill.f90	(revision b5127f9034f2a15f9a3ce226fd26edfe845311de)
@@ -400,4 +400,13 @@
   end do
 
+! Reduce numpart if invalid particles at end of arrays
+  do i=numpart, 1, -1
+      if (itra1(i).eq.-999999999) then
+        numpart=numpart-1
+      else
+        exit
+      end if
+    end do
+
 ! If particles shall be read in to continue an existing run,
 ! then the accumulated masses at the domain boundaries must be read in, too.
@@ -414,5 +423,3 @@
 
 
-
-
 end subroutine init_domainfill
Index: src/init_domainfill_mpi.f90
===================================================================
--- src/init_domainfill_mpi.f90	(revision 16b61a5e2d3b1020be1cff080e479ba26f3f7063)
+++ src/init_domainfill_mpi.f90	(revision b5127f9034f2a15f9a3ce226fd26edfe845311de)
@@ -370,6 +370,5 @@
 !***********************************************
 
-!    do j=1,numpart
-    do j=1,npoint(1)
+    do j=1,numpart
       if ((xtra1_tmp(j).lt.0.).or.(xtra1_tmp(j).ge.real(nxmin1)).or. &
            (ytra1_tmp(j).lt.0.).or.(ytra1_tmp(j).ge.real(nymin1))) then
@@ -475,5 +474,5 @@
     endif
 
-    numpart = npart(1)/mp_partgroup_np
+    numpart = numpart/mp_partgroup_np
     if (mod(numpart,mp_partgroup_np).ne.0) numpart=numpart+1
 
@@ -488,11 +487,11 @@
 
 ! Distribute particles to other processes (numpart is 'per-process', not total)
-    call MPI_Bcast(numpart, 1, MPI_INTEGER, id_root, mp_comm_used, mp_ierr)
+  call MPI_Bcast(numpart, 1, MPI_INTEGER, id_root, mp_comm_used, mp_ierr)
 ! eso TODO: xmassperparticle: not necessary to send
-    call MPI_Bcast(xmassperparticle, 1, mp_sp, id_root, mp_comm_used, mp_ierr)
-    call mpif_send_part_properties(numpart)
+  call MPI_Bcast(xmassperparticle, 1, mp_sp, id_root, mp_comm_used, mp_ierr)
+  call mpif_send_part_properties(numpart)
 
 ! Deallocate the temporary arrays used for all particles
-    deallocate(itra1_tmp,npoint_tmp,nclass_tmp,idt_tmp,itramem_tmp,&
+  deallocate(itra1_tmp,npoint_tmp,nclass_tmp,idt_tmp,itramem_tmp,&
          & itrasplit_tmp,xtra1_tmp,ytra1_tmp,ztra1_tmp,xmass1_tmp)
 
Index: src/mean_mod.f90
===================================================================
--- src/mean_mod.f90	(revision 4c64400c622119505b289ef83be130b0b81b9590)
+++ src/mean_mod.f90	(revision b5127f9034f2a15f9a3ce226fd26edfe845311de)
@@ -180,6 +180,6 @@
     xq=0._sp
     do i=1,number
-      xl=xl+x_dp(i)
-      xq=xq+x_dp(i)*x_dp(i)
+      xl=xl+real(x_dp(i),kind=sp)
+      xq=xq+real(x_dp(i),kind=sp)*real(x_dp(i),kind=sp)
     end do
 
@@ -237,5 +237,5 @@
     end do
 
-    xm=xl/real(number,kind=sp)
+    xm=real(xl,kind=sp)/real(number,kind=sp)
 
     xaux=xq-xl*xl/real(number,kind=dp)
Index: src/mpi_mod.f90
===================================================================
--- src/mpi_mod.f90	(revision 4c64400c622119505b289ef83be130b0b81b9590)
+++ src/mpi_mod.f90	(revision b5127f9034f2a15f9a3ce226fd26edfe845311de)
@@ -332,4 +332,5 @@
 ! eso 08/2016: Increase maxpart per process, in case of unbalanced distribution
     maxpart_mpi=int(mp_maxpart_factor*real(maxpart)/real(mp_partgroup_np))
+    if (mp_np == 1) maxpart_mpi = maxpart
 
 ! Do not allocate particle data arrays for readwind process
@@ -550,4 +551,5 @@
 ! "numpart" is larger than the actual used, so we reduce it if there are
 ! invalid particles at the end of the arrays
+
 601 do i=num_part, 1, -1
       if (itra1(i).eq.-999999999) then
@@ -559,5 +561,4 @@
 
 
-!601 end subroutine mpif_send_part_properties
   end subroutine mpif_send_part_properties
 
Index: src/readavailable.f90
===================================================================
--- src/readavailable.f90	(revision 4c64400c622119505b289ef83be130b0b81b9590)
+++ src/readavailable.f90	(revision b5127f9034f2a15f9a3ce226fd26edfe845311de)
@@ -63,4 +63,5 @@
   integer :: i,idiff,ldat,ltim,wftime1(maxwf),numbwfn(maxnests),k
   integer :: wftime1n(maxnests,maxwf),wftimen(maxnests,maxwf)
+  logical :: lwarntd=.true.
   real(kind=dp) :: juldate,jul,beg,end
   character(len=255) :: fname,spec,wfname1(maxwf),wfspec1(maxwf)
@@ -241,8 +242,9 @@
            &'
       write(*,*) 'THEREFORE, TRAJECTORIES HAVE TO BE SKIPPED.'
-    else if (idiff.gt.idiffnorm.and.lroot) then
+    else if (idiff.gt.idiffnorm.and.lroot.and.lwarntd) then
       write(*,*) 'FLEXPART WARNING: TIME DIFFERENCE BETWEEN TWO'
       write(*,*) 'WIND FIELDS IS BIG. THIS MAY CAUSE A DEGRADATION'
       write(*,*) 'OF SIMULATION QUALITY.'
+      lwarntd=.false. ! only issue this warning once
     endif
   end do
Index: src/readcommand.f90
===================================================================
--- src/readcommand.f90	(revision 8ee24a5772873f9cec6d380cad07cb952da5d0f2)
+++ src/readcommand.f90	(revision b5127f9034f2a15f9a3ce226fd26edfe845311de)
@@ -146,4 +146,8 @@
   ohfields_path="../../flexin/"
 
+  !Af set release-switch
+  WETBKDEP=.false.
+  DRYBKDEP=.false.
+
   ! Open the command file and read user options
   ! Namelist input first: try to read as namelist file
@@ -321,7 +325,4 @@
         ind_samp = 0
      endif
-  !Af set release-switch
-     WETBKDEP=.false.
-     DRYBKDEP=.false.
      select case (ind_receptor)
      case (1)  !  1 .. concentration at receptor
Index: src/timemanager_mpi.f90
===================================================================
--- src/timemanager_mpi.f90	(revision 16b61a5e2d3b1020be1cff080e479ba26f3f7063)
+++ src/timemanager_mpi.f90	(revision b5127f9034f2a15f9a3ce226fd26edfe845311de)
@@ -773,5 +773,5 @@
               endif
             else
-              xmassfract=1.
+              xmassfract=1.0
             endif
           end do
@@ -781,4 +781,7 @@
           !         xmass1(j,:)), ' of ', sum(xmass(npoint(j),:)),')'
             itra1(j)=-999999999
+            if (verbosity.gt.0) then
+              print*,'terminated particle ',j,' for small mass'
+            endif
           endif
 
