Index: palm/trunk/SOURCE/inflow_turbulence.f90
===================================================================
--- palm/trunk/SOURCE/inflow_turbulence.f90	(revision 159)
+++ palm/trunk/SOURCE/inflow_turbulence.f90	(revision 163)
@@ -91,5 +91,5 @@
     i = recycling_plane
 
-    IF ( i >= nxl  .AND.  i <= nxr )  THEN
+    IF ( myidx == id_recycling )  THEN
 
        DO  j = nys-1, nyn+1
@@ -110,15 +110,14 @@
 !-- For parallel runs, send the disturbances to the respective inflow PE
 #if defined( __parallel )
-    IF ( i >= nxl  .AND.  i <= nxr  .AND.  myid /= id_inflow )  THEN
+    IF ( myidx == id_recycling  .AND.  myidx /= id_inflow )  THEN
 
-!       print*, '*** sending id = ', myid, '   send to:', id_inflow
        CALL MPI_SEND( inflow_dist(nzb,nys-1,1), ngp_ifd, MPI_REAL, &
                       id_inflow, 1, comm1dx, ierr )
 
-    ELSEIF ( ( i < nxl  .OR.  i > nxr )  .AND.  myid == id_inflow )  THEN
+    ELSEIF ( myidx /= id_recycling  .AND.  myidx == id_inflow )  THEN
 
-!       print*, '*** receiving id = ', myid
+       inflow_dist = 0.0
        CALL MPI_RECV( inflow_dist(nzb,nys-1,1), ngp_ifd, MPI_REAL, &
-                      MPI_ANY_SOURCE, 1, comm1dx, status, ierr )
+                      id_recycling, 1, comm1dx, status, ierr )
 
     ENDIF
Index: palm/trunk/SOURCE/init_3d_model.f90
===================================================================
--- palm/trunk/SOURCE/init_3d_model.f90	(revision 159)
+++ palm/trunk/SOURCE/init_3d_model.f90	(revision 163)
@@ -980,6 +980,15 @@
 
 !
+!--    Read binary data from restart file
+          WRITE (9,*) 'before read_3d_binary'
+          CALL local_flush( 9 )
+       CALL read_3d_binary
+          WRITE (9,*) 'after read_3d_binary'
+          CALL local_flush( 9 )
+
+!
 !--    Calculate the initial volume flow at the right and north boundary
-       IF ( conserve_volume_flow )  THEN
+       IF ( conserve_volume_flow  .AND.  &
+            TRIM( initializing_actions ) == 'read_data_for_recycling' )  THEN
 
           volume_flow_initial_l = 0.0
@@ -1025,12 +1034,4 @@
        ENDIF
 
-
-!
-!--    Read binary data from restart file
-          WRITE (9,*) 'before read_3d_binary'
-          CALL local_flush( 9 )
-       CALL read_3d_binary
-          WRITE (9,*) 'after read_3d_binary'
-          CALL local_flush( 9 )
 
 !
Index: palm/trunk/SOURCE/init_pegrid.f90
===================================================================
--- palm/trunk/SOURCE/init_pegrid.f90	(revision 159)
+++ palm/trunk/SOURCE/init_pegrid.f90	(revision 163)
@@ -48,4 +48,5 @@
     USE control_parameters
     USE fft_xy
+    USE grid_variables
     USE indices
     USE pegrid
@@ -58,5 +59,5 @@
     IMPLICIT NONE
 
-    INTEGER ::  gathered_size, i, id_inflow_l, ind(5), j, k,                 &
+    INTEGER ::  gathered_size, i, id_inflow_l, id_recycling_l, ind(5), j, k, &
                 maximum_grid_level_l, mg_switch_to_pe0_level_l, mg_levels_x, &
                 mg_levels_y, mg_levels_z, nnx_y, nnx_z, nny_x, nny_z, nnz_x, &
@@ -922,9 +923,21 @@
 !-- Broadcast the id of the inflow PE
     IF ( inflow_l )  THEN
-       id_inflow_l = myid
+       id_inflow_l = myidx
     ELSE
        id_inflow_l = 0
     ENDIF
     CALL MPI_ALLREDUCE( id_inflow_l, id_inflow, 1, MPI_INTEGER, MPI_SUM, &
+                        comm1dx, ierr )
+
+!
+!-- Broadcast the id of the recycling plane
+!-- WARNING: needs to be adjusted in case of inflows other than from left side!
+    IF ( ( recycling_width / dx ) >= nxl  .AND.  ( recycling_width / dx ) <= nxr ) &
+    THEN
+       id_recycling_l = myidx
+    ELSE
+       id_recycling_l = 0
+    ENDIF
+    CALL MPI_ALLREDUCE( id_recycling_l, id_recycling, 1, MPI_INTEGER, MPI_SUM, &
                         comm1dx, ierr )
 
Index: palm/trunk/SOURCE/modules.f90
===================================================================
--- palm/trunk/SOURCE/modules.f90	(revision 159)
+++ palm/trunk/SOURCE/modules.f90	(revision 163)
@@ -7,5 +7,5 @@
 ! +canopy_heat_flux, cthf, lai,
 ! +leaf_surface_concentration, scalar_exchange_coefficient, sec, sls
-! +hor_index_bounds, hor_index_bounds_previous_run, id_inflow,
+! +hor_index_bounds, hor_index_bounds_previous_run, id_inflow, id_recycling,
 ! inflow_damping_*, mean_inflow_profiles, numprocs_previous_run, nx_on_file,
 ! ny_on_file, offset_ocean_*, recycling_plane, recycling_width, turbulent_inflow
@@ -969,6 +969,6 @@
 #endif
     CHARACTER(LEN=5)       ::  myid_char = ''
-    INTEGER                ::  id_inflow, myid=0, npex = -1, npey = -1,  &
-                               numprocs = 1, numprocs_previous_run = -1, &
+    INTEGER                ::  id_inflow = 0, id_recycling = 0, myid=0, npex = -1, &
+                               npey = -1, numprocs = 1, numprocs_previous_run = -1,&
                                tasks_per_node = -9999, threads_per_task = 1
 
