diff --git a/run/create_target_header b/run/create_target_header
index 3b9b88f56e..edcccdfc7b 100644
--- a/run/create_target_header
+++ b/run/create_target_header
@@ -374,7 +374,7 @@ set_run_target_bull_milan()
     then
         use_mpi_startrun="srun -l --kill-on-bad-exit=1 --distribution=plane --hint=nomultithread --ntasks=\${mpi_procs_pernode} --cpus-per-task=\${OMP_NUM_THREADS}"
     else
-        use_mpi_startrun="srun -l --kill-on-bad-exit=1 --nodes=\${SLURM_JOB_NUM_NODES:-1} --distribution=plane --hint=nomultithread --ntasks=\$((no_of_nodes * mpi_procs_pernode)) --ntasks-per-node=\${mpi_procs_pernode} --cpus-per-task=\${OMP_NUM_THREADS}"
+        use_mpi_startrun="srun -l --kill-on-bad-exit=1 --nodes=\${SLURM_JOB_NUM_NODES:-1} --distribution=cyclic:block --hint=nomultithread --ntasks=\$((no_of_nodes * mpi_procs_pernode)) --ntasks-per-node=\${mpi_procs_pernode} --cpus-per-task=\${OMP_NUM_THREADS}"
     fi
 
     add_free_var MALLOC_TRIM_THRESHOLD_ -1
@@ -1730,6 +1730,7 @@ set_run_target_juwels()
     set_default use_nodes 1
     set_default use_num_io_procs 1
     set_default use_cpu_time 01:00:00
+    set_default use_account_no exaww
 
     if [[ $use_mpi == "yes" ]]; then
 	if [[ $use_openmp == "yes" ]]; then
@@ -1775,7 +1776,7 @@ $(if [[ "x$BB_SYSTEM" != 'x' ]]
  then
   printf "#SBATCH ${TIME_LIMITS}
 ";fi)
-#SBATCH --account=exaww
+#SBATCH --account=$use_account_no
 #SBATCH --ntasks-per-node=$use_mpi_procs_pernode
 #SBATCH --time=$use_cpu_time
 
diff --git a/run/exec.iconrun b/run/exec.iconrun
index 7123f14aea..07e7414606 100644
--- a/run/exec.iconrun
+++ b/run/exec.iconrun
@@ -412,18 +412,17 @@ if [ $finish_status = "RESTART" ] ; then
   ${submit} $this_script $run_param_0
 else
   [[ -f ${restartSemaphoreFilename} ]] && rm ${restartSemaphoreFilename}
-fi
 
-#-----------------------------------------------------------------------------
-# automatic call/submission of post processing if available
-if [ "x${autoPostProcessing}" = "xtrue" ]; then
-  # check if there is a postprocessing is available
-  cd ${RUNSCRIPTDIR}
-  targetPostProcessingScript="./post.${EXPNAME}.run"
-  [[ -x $targetPostProcessingScript ]] && ${submit} ${targetPostProcessingScript}
-  cd -
+  #-----------------------------------------------------------------------------
+  # automatic call/submission of post processing if available
+  if [ "x${autoPostProcessing}" = "xtrue" ]; then
+    # check if there is a postprocessing is available
+    cd ${RUNSCRIPTDIR}
+    targetPostProcessingScript="./post.${EXPNAME}.run"
+    [[ -x $targetPostProcessingScript ]] && ${submit} ${targetPostProcessingScript}
+    cd -
+  fi
 fi
-
 #-----------------------------------------------------------------------------
 
 cd $RUNSCRIPTDIR
diff --git a/src/atm_dyn_iconam/mo_initicon_io.f90 b/src/atm_dyn_iconam/mo_initicon_io.f90
index 2601364783..becb2fc273 100644
--- a/src/atm_dyn_iconam/mo_initicon_io.f90
+++ b/src/atm_dyn_iconam/mo_initicon_io.f90
@@ -1270,6 +1270,7 @@ MODULE mo_initicon_io
     TYPE(t_fetchParams) :: params
     REAL(wp), ALLOCATABLE :: z_ifc_in(:,:,:), w_ifc(:,:,:), tke_ifc(:,:,:)
     LOGICAL :: lfound_thv, lfound_rho, lfound_vn, lfound_hus, lfound_clw, lfound_cli, lfound_qr, lfound_qs, lfound_qg
+    LOGICAL ::lfound_qh, lfound_qnc, lfound_qni, lfound_qnr, lfound_qns, lfound_qng, lfound_qnh
 
     ALLOCATE(params%inputInstructions(SIZE(inputInstructions, 1)))
     params%inputInstructions = inputInstructions
@@ -1321,6 +1322,15 @@ MODULE mo_initicon_io
 
             CALL fetch3d(params, 'qr', jg, initicon(jg)%atm_in%qr, lfound_qr)
             CALL fetch3d(params, 'qs', jg, initicon(jg)%atm_in%qs, lfound_qs)
+
+            CALL fetch3d(params, 'qh', jg, initicon(jg)%atm_in%qh, lfound_qh)
+            CALL fetch3d(params, 'qnc', jg, initicon(jg)%atm_in%qnc, lfound_qnc)
+            CALL fetch3d(params, 'qni', jg, initicon(jg)%atm_in%qni, lfound_qni)
+            CALL fetch3d(params, 'qnr', jg, initicon(jg)%atm_in%qnr, lfound_qnr)
+            CALL fetch3d(params, 'qns', jg, initicon(jg)%atm_in%qns, lfound_qns)
+            CALL fetch3d(params, 'qng', jg, initicon(jg)%atm_in%qng, lfound_qng)
+            CALL fetch3d(params, 'qnh', jg, initicon(jg)%atm_in%qnh, lfound_qnh)
+
 !$OMP PARALLEL
             IF (.NOT. lfound_qr) CALL init(initicon(jg)%atm_in%qr(:,:,:), lacc=.FALSE.)
             IF (.NOT. lfound_qs) CALL init(initicon(jg)%atm_in%qs(:,:,:), lacc=.FALSE.)
diff --git a/src/atm_dyn_iconam/mo_initicon_utils.f90 b/src/atm_dyn_iconam/mo_initicon_utils.f90
index 36ae95e7a1..c31330a199 100644
--- a/src/atm_dyn_iconam/mo_initicon_utils.f90
+++ b/src/atm_dyn_iconam/mo_initicon_utils.f90
@@ -1459,6 +1459,18 @@ MODULE mo_initicon_utils
         &       atm_in%tke, &
         !
         &       const%z_mc_in)
+
+        IF (atm_phy_nwp_config(jg)%l2moment) THEN
+          NULLIFY(atm_in%qh, &
+                  atm_in%qnc, &
+          &       atm_in%qni, &
+          &       atm_in%qnr, &
+          &       atm_in%qns, &
+          &       atm_in%qng, &
+          &       atm_in%qnh)
+        END IF
+
+
         atm_in%nlev         = 0
         atm_in%linitialized = .FALSE.
     END SUBROUTINE construct_atm_in
@@ -1773,6 +1785,26 @@ MODULE mo_initicon_utils
     CALL init(atm_in%qg(:,:,:), lacc=.FALSE.)
 !$OMP END PARALLEL
 
+
+!    IF (atm_phy_nwp_config(jg)%l2moment) THEN
+      ALLOCATE(atm_in%qh(nproma,nlev_in,nblks_c))
+      ALLOCATE(atm_in%qnc(nproma,nlev_in,nblks_c))
+      ALLOCATE(atm_in%qni(nproma,nlev_in,nblks_c))
+      ALLOCATE(atm_in%qnr(nproma,nlev_in,nblks_c))
+      ALLOCATE(atm_in%qns(nproma,nlev_in,nblks_c))
+      ALLOCATE(atm_in%qng(nproma,nlev_in,nblks_c))
+      ALLOCATE(atm_in%qnh(nproma,nlev_in,nblks_c))
+!$OMP PARALLEL
+      CALL init(atm_in%qh(:,:,:), lacc=.FALSE.)
+      CALL init(atm_in%qnc(:,:,:), lacc=.FALSE.)
+      CALL init(atm_in%qni(:,:,:), lacc=.FALSE.)
+      CALL init(atm_in%qnr(:,:,:), lacc=.FALSE.)
+      CALL init(atm_in%qns(:,:,:), lacc=.FALSE.)
+      CALL init(atm_in%qng(:,:,:), lacc=.FALSE.)
+      CALL init(atm_in%qnh(:,:,:), lacc=.FALSE.)
+!$OMP END PARALLEL
+!    END IF
+
     IF (init_mode == MODE_ICONVREMAP .OR. lvert_remap_fg) THEN
       ALLOCATE( &
         atm_in%rho     (nproma,nlev_in  ,nblks_c), &
diff --git a/src/atm_dyn_iconam/mo_nh_vert_interp.f90 b/src/atm_dyn_iconam/mo_nh_vert_interp.f90
index 2cf1ff3edf..2a6ec65f02 100644
--- a/src/atm_dyn_iconam/mo_nh_vert_interp.f90
+++ b/src/atm_dyn_iconam/mo_nh_vert_interp.f90
@@ -574,6 +574,57 @@ CONTAINS
                   wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE., &
                   l_pd_limit=.TRUE., lacc=.FALSE.)
 
+    
+    IF ( .NOT. latbcmode ) THEN
+      CALL lin_intp(initicon%atm_in%qg, initicon%atm%qg,                   &
+                    p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,        &
+                    wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,        &
+                    wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,   &
+                    l_pd_limit=.TRUE., lacc=.FALSE.)
+
+      CALL lin_intp(initicon%atm_in%qh, initicon%atm%qh,                   &
+                    p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,        &
+                    wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,        &
+                    wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,   &
+                    l_pd_limit=.TRUE., lacc=.FALSE.)
+      
+      CALL lin_intp(initicon%atm_in%qnc, initicon%atm%qnc,                   &
+                    p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,        &
+                    wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,        &
+                    wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,   &
+                    l_pd_limit=.TRUE., lacc=.FALSE.)
+
+      CALL lin_intp(initicon%atm_in%qni, initicon%atm%qni,                   &
+              p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,        &
+              wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,        &
+              wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,   &
+              l_pd_limit=.TRUE., lacc=.FALSE.)
+      
+      CALL lin_intp(initicon%atm_in%qnr, initicon%atm%qnr,                   &
+                p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,                    &
+                wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,                    &
+                wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,               &
+                l_pd_limit=.TRUE., lacc=.FALSE.)
+
+      CALL lin_intp(initicon%atm_in%qns, initicon%atm%qns,                   &
+                p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,                    &
+                wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,                    &
+                wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,               &
+                l_pd_limit=.TRUE., lacc=.FALSE.)
+
+      CALL lin_intp(initicon%atm_in%qng, initicon%atm%qng,                   &
+                p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,                    &
+                wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,                    &
+                wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,               &
+                l_pd_limit=.TRUE., lacc=.FALSE.)
+
+      CALL lin_intp(initicon%atm_in%qnh, initicon%atm%qnh,                   &
+                p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,                    &
+                wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,                    &
+                wfacpbl2, kpbl2, l_loglin=.FALSE., l_extrapol=.FALSE.,               &
+                l_pd_limit=.TRUE., lacc=.FALSE.)
+    ENDIF
+
     CALL lin_intp(initicon%atm_in%qi, initicon%atm%qi,                   &
                   p_patch%nblks_c, p_patch%npromz_c, nlev_in, nlev,      &
                   wfac_lin, idx0_lin, bot_idx_lin, wfacpbl1, kpbl1,      &
