Index: palm/trunk/SOURCE/init_pegrid.f90
===================================================================
--- palm/trunk/SOURCE/init_pegrid.f90	(revision 2176)
+++ palm/trunk/SOURCE/init_pegrid.f90	(revision 2177)
@@ -254,9 +254,9 @@
 
 !
-!--    Determine the processor topology or check it, if prescribed by the user
+!-- Determine the processor topology or check it, if prescribed by the user
     IF ( npex == -1  .AND.  npey == -1 )  THEN
 
 !
-!--       Automatic determination of the topology
+!--    Automatic determination of the topology
        numproc_sqr = SQRT( REAL( numprocs, KIND=wp ) )
        pdims(1)    = MAX( numproc_sqr , 1 )
Index: palm/trunk/SOURCE/palm.f90
===================================================================
--- palm/trunk/SOURCE/palm.f90	(revision 2176)
+++ palm/trunk/SOURCE/palm.f90	(revision 2177)
@@ -162,5 +162,6 @@
     USE control_parameters,                                                    &
         ONLY:  constant_diffusion, coupling_char, coupling_mode,               &
-               do2d_at_begin, do3d_at_begin, humidity, io_blocks, io_group,    &
+               do2d_at_begin, do3d_at_begin, humidity, initializing_actions,   &
+               io_blocks, io_group,                                            &
                large_scale_forcing, message_string, nest_domain, neutral,      &
                nudging, passive_scalar, simulated_time, simulated_time_chr,    &
@@ -345,9 +346,11 @@
 !--    Receive and interpolate initial data on children.
 !--    Child initialization must be made first if the model is both child and
-!--    parent
-       CALL pmci_child_initialize
-!
-!--    Send initial condition data from parent to children
-       CALL pmci_parent_initialize
+!--    parent if necessary
+       IF ( TRIM( initializing_actions ) /= 'read_restart_data' )  THEN
+          CALL pmci_child_initialize
+!
+!--       Send initial condition data from parent to children
+          CALL pmci_parent_initialize
+       END IF
 !
 !--    Exchange_horiz is needed after the nest initialization
Index: palm/trunk/SOURCE/pmc_interface_mod.f90
===================================================================
--- palm/trunk/SOURCE/pmc_interface_mod.f90	(revision 2176)
+++ palm/trunk/SOURCE/pmc_interface_mod.f90	(revision 2177)
@@ -363,4 +363,6 @@
     INTEGER(iwp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::  ijfc_v        !:
     INTEGER(iwp), SAVE, ALLOCATABLE, DIMENSION(:,:) ::  ijfc_s        !:
+    INTEGER(iwp), SAVE, ALLOCATABLE, DIMENSION(:)   ::  kfc_w         !:
+    INTEGER(iwp), SAVE, ALLOCATABLE, DIMENSION(:)   ::  kfc_s         !:
     
     INTEGER(iwp), DIMENSION(3)          ::  define_coarse_grid_int    !:
@@ -2021,5 +2023,5 @@
     SUBROUTINE pmci_find_logc_pivot_k( lc, logzc1, z0_l, kb )
 !
-!--    Finds the pivot node and te log-law factor for near-wall nodes for
+!--    Finds the pivot node and the log-law factor for near-wall nodes for
 !--    which the wall-parallel velocity components will be log-law corrected
 !--    after interpolation. This subroutine is only for horizontal walls.
@@ -2212,5 +2214,6 @@
        ALLOCATE( ijfc_v(jcs:jcn,icl:icr) )
        ALLOCATE( ijfc_s(jcs:jcn,icl:icr) )
-
+       ALLOCATE( kfc_w(0:kctw) )
+       ALLOCATE( kfc_s(0:kctu) )
 !
 !--    i-indices of u for each ii-index value
@@ -2345,5 +2348,10 @@
           ENDDO
        ENDDO
-    
+       DO kk = 0, kctw
+          kfc_w(kk) = kfuw(kk) - kflw(kk) + 1
+       ENDDO
+       DO kk = 0, kctu
+          kfc_s(kk) = kfuo(kk) - kflo(kk) + 1
+       ENDDO
 !
 !--    Spatial under-relaxation coefficients
@@ -3951,13 +3959,13 @@
 
       CALL pmci_anterp_tophat( u,  uc,  kctu, iflu, ifuu, jflo, jfuo, kflo,    &
-                               kfuo, ijfc_u, 'u' )
+                               kfuo, ijfc_u, kfc_s, 'u' )
       CALL pmci_anterp_tophat( v,  vc,  kctu, iflo, ifuo, jflv, jfuv, kflo,    &
-                               kfuo, ijfc_v, 'v' )
+                               kfuo, ijfc_v, kfc_s, 'v' )
       CALL pmci_anterp_tophat( w,  wc,  kctw, iflo, ifuo, jflo, jfuo, kflw,    &
-                               kfuw, ijfc_s, 'w' )
+                               kfuw, ijfc_s, kfc_w, 'w' )
 
       IF ( .NOT. neutral )  THEN
          CALL pmci_anterp_tophat( pt, ptc, kctu, iflo, ifuo, jflo, jfuo, kflo, &
-                                  kfuo, ijfc_s, 's' )
+                                  kfuo, ijfc_s, kfc_s, 's' )
       ENDIF
 
@@ -3965,19 +3973,19 @@
 
          CALL pmci_anterp_tophat( q, q_c, kctu, iflo, ifuo, jflo, jfuo, kflo,  &
-                                  kfuo, ijfc_s, 's' )
+                                  kfuo, ijfc_s, kfc_s, 's' )
 
          IF ( cloud_physics  .AND.  microphysics_seifert )  THEN
 
 !             CALL pmci_anterp_tophat( qc, qcc, kctu, iflo, ifuo, jflo, jfuo,    &
-!                                      kflo, kfuo, ijfc_s, 's' )
+!                                      kflo, kfuo, ijfc_s, kfc_s, 's' )
 
             CALL pmci_anterp_tophat( qr, qrc, kctu, iflo, ifuo, jflo, jfuo,    &
-                                     kflo, kfuo, ijfc_s, 's' )
+                                     kflo, kfuo, ijfc_s, kfc_s, 's' )
 
 !             CALL pmci_anterp_tophat( nc, ncc, kctu, iflo, ifuo, jflo, jfuo,    &
-!                                      kflo, kfuo, ijfc_s, 's' )
+!                                      kflo, kfuo, ijfc_s, kfc_s,  's' )
 
             CALL pmci_anterp_tophat( nr, nrc, kctu, iflo, ifuo, jflo, jfuo,    &
-                                     kflo, kfuo, ijfc_s, 's' )
+                                     kflo, kfuo, ijfc_s, kfc_s, 's' )
 
          ENDIF
@@ -3987,5 +3995,5 @@
       IF ( passive_scalar )  THEN
          CALL pmci_anterp_tophat( s, sc, kctu, iflo, ifuo, jflo, jfuo, kflo,   &
-                                  kfuo, ijfc_s, 's' )
+                                  kfuo, ijfc_s, kfc_s, 's' )
       ENDIF
 
@@ -4691,5 +4699,5 @@
 
     SUBROUTINE pmci_anterp_tophat( f, fc, kct, ifl, ifu, jfl, jfu, kfl, kfu,    &
-                                   ijfc, var )
+                                   ijfc, kfc, var )
 !
 !--    Anterpolation of internal-node values to be used as the parent-domain
@@ -4710,5 +4718,5 @@
        INTEGER(iwp) ::  jcnm      !:
        INTEGER(iwp) ::  jcsp      !:
-       INTEGER(iwp) ::  k         !: Fine-grid index
+       INTEGER(iwp) ::  k         !: Fine-grid index       
        INTEGER(iwp) ::  kk        !: Coarse-grid index
        INTEGER(iwp) ::  kcb = 0   !:
@@ -4717,12 +4725,12 @@
        INTEGER(iwp), INTENT(IN) ::  kct   !:
 
-       INTEGER(iwp), DIMENSION(icl:icr), INTENT(IN) ::  ifl   !:
-       INTEGER(iwp), DIMENSION(icl:icr), INTENT(IN) ::  ifu   !:
-       INTEGER(iwp), DIMENSION(jcs:jcn), INTENT(IN) ::  jfl   !:
-       INTEGER(iwp), DIMENSION(jcs:jcn), INTENT(IN) ::  jfu   !:
-       INTEGER(iwp), DIMENSION(0:kct), INTENT(IN)   ::  kfl   !:
-       INTEGER(iwp), DIMENSION(0:kct), INTENT(IN)   ::  kfu   !:
-
-       INTEGER(iwp), DIMENSION(jcs:jcn,icl:icr), INTENT(IN) ::  ijfc !:
+       INTEGER(iwp), DIMENSION(icl:icr), INTENT(IN) ::  ifl         !:
+       INTEGER(iwp), DIMENSION(icl:icr), INTENT(IN) ::  ifu         !:
+       INTEGER(iwp), DIMENSION(jcs:jcn,icl:icr), INTENT(IN) :: ijfc !:
+       INTEGER(iwp), DIMENSION(jcs:jcn), INTENT(IN) ::  jfl         !:
+       INTEGER(iwp), DIMENSION(jcs:jcn), INTENT(IN) ::  jfu         !:
+       INTEGER(iwp), DIMENSION(0:kct), INTENT(IN)   ::  kfc         !:
+       INTEGER(iwp), DIMENSION(0:kct), INTENT(IN)   ::  kfl         !:
+       INTEGER(iwp), DIMENSION(0:kct), INTENT(IN)   ::  kfu         !:
 
        REAL(wp) ::  cellsum   !:
@@ -4740,5 +4748,5 @@
        jcsp = jcs 
        jcnm = jcn 
-
+       kcb  = 0
 !
 !--    Define the index bounds iclp, icrm, jcsp and jcnm.
@@ -4792,6 +4800,6 @@
              DO  kk = kcb, kct
 !
-!--             ijfc is precomputed in pmci_init_anterp_tophat
-                nfc =  ijfc(jj,ii) * ( kfu(kk) - kfl(kk) + 1 )
+!--             ijfc and kfc are precomputed in pmci_init_anterp_tophat
+                nfc =  ijfc(jj,ii) * kfc(kk) 
                 cellsum = 0.0_wp
                 DO  i = ifl(ii), ifu(ii)
@@ -4805,12 +4813,4 @@
 !--             Spatial under-relaxation.
                 fra  = frax(ii) * fray(jj) * fraz(kk)
-!
-!--             Block out the fine-grid corner patches from the anterpolation
-!                 IF ( ( ifl(ii) < nxl ) .OR. ( ifu(ii) > nxr ) )  THEN
-!                    IF ( ( jfl(jj) < nys ) .OR. ( jfu(jj) > nyn ) )  THEN
-!                       fra = 0.0_wp
-!                    ENDIF
-!                 ENDIF
-
                 fc(kk,jj,ii) = ( 1.0_wp - fra ) * fc(kk,jj,ii) +                &
                                fra * cellsum / REAL( nfc, KIND = wp )
