diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1bd21522268648e6377825b148a2fbb4e7cb3741..3d27ee9250f0ca407b5d94656b814203ed41943a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -61,6 +61,23 @@ options-test:
       - ./tests/output_bkw_eta
     expire_in: 5 mins
 
+nests-test:
+  # image: harbor.wolke.img.univie.ac.at/flexpart/almalinux8:latest
+  image: harbor.wolke.img.univie.ac.at/flexpart/rockylinux9:latest
+  stage: test
+  when: manual
+  needs:
+    - alma8-build
+    - rocky9-build
+
+  script:
+    - ulimit -s unlimited
+    - bash ./tests/run_nests_test.sh
+  artifacts:
+    when: on_success
+    paths:
+    expire_in: 5 mins
+
 openmp-simulation:
   # image: harbor.wolke.img.univie.ac.at/flexpart/almalinux8:latest
   image: harbor.wolke.img.univie.ac.at/flexpart/rockylinux9:latest
diff --git a/src/drydepo_mod.f90 b/src/drydepo_mod.f90
index 3e97bc4dcc7f9903f0a935c2b93090f85f043b68..923c353a987ea02f0cd96227a7301556ae897f11 100644
--- a/src/drydepo_mod.f90
+++ b/src/drydepo_mod.f90
@@ -85,16 +85,19 @@ subroutine assignland
 
   implicit none
 
-  integer :: ix,jy,k,l,li,nrefine,iix,jjy
+  integer :: ix,jy,k,l,li,nrefine,iix,jjy,stat
   integer,parameter :: lumaxx=1200,lumaxy=600
   integer,parameter :: xlon0lu=-180,ylat0lu=-90
   real,parameter :: dxlu=0.3
   real :: xlon,ylat,sumperc,p,xi,yj
-  real :: xlandusep(lumaxx,lumaxy,numclass)
+  real,allocatable,dimension(:,:,:) :: xlandusep
   ! character*2 ck
 
   if (.not.DRYDEP) return
   
+  allocate( xlandusep(lumaxx,lumaxy,numclass), stat=stat)
+  if (stat.ne.0) error stop "Could not allocate xlandusep in assignland"
+
   do ix=1,lumaxx
     do jy=1,lumaxy
        do k=1,numclass
diff --git a/src/readoptions_mod.f90 b/src/readoptions_mod.f90
index 885982eeddc9367d001d1cb940d3b83e1d91d7c6..6906935f1f7f398d9137d7f78646c3973ccebfc8 100644
--- a/src/readoptions_mod.f90
+++ b/src/readoptions_mod.f90
@@ -253,14 +253,14 @@ subroutine readavailable
         jul=juldate(ldat,ltim)
         if ((jul.ge.beg).and.(jul.le.endl)) then
           numbwfn(k)=numbwfn(k)+1
-          allocate( tmpwfnamen(numbnests,numbwf),tmpwftimen(numbnests,numbwf), &
+          allocate( tmpwfnamen(numbnests,numbwfn(k)),tmpwftimen(numbnests,numbwfn(k)), &
             stat=stat)
           if (stat.ne.0) error stop 'ERROR: could not allocate tmpwfnamen'
           if (numbwfn(k).gt.1) then
-            tmpwfnamen(:,1:numbwf-1)=wfname1n
-            tmpwftimen(:,1:numbwf-1)=wftime1n
+            tmpwfnamen(:,1:numbwfn(k)-1)=wfname1n
+            tmpwftimen(:,1:numbwfn(k)-1)=wftime1n
           endif
-          tmpwfnamen(k,numbwfn(k))=fname
+          tmpwfnamen(k,numbwfn(k))=fname(1:index(fname,' '))
           tmpwftimen(k,numbwfn(k))=nint((jul-bdate)*86400._dp)
           call move_alloc(tmpwfnamen,wfname1n)
           call move_alloc(tmpwftimen,wftime1n)
diff --git a/src/windfields_mod.f90 b/src/windfields_mod.f90
index 9e97fc01603270355390590e274d9a9b132eecdd..31454a481517b29abd43a80622fcb3d2abd973dc 100644
--- a/src/windfields_mod.f90
+++ b/src/windfields_mod.f90
@@ -3430,6 +3430,7 @@ subroutine readwind_nest(indj,n,uuhn,vvhn,wwhn)
 
     gotGrid=0
     ifield=0
+
     do
       ifield=ifield+1
       !
@@ -3449,6 +3450,7 @@ subroutine readwind_nest(indj,n,uuhn,vvhn,wwhn)
       ! AT stepRange is used to identify additional precip fields
       call grib_get_int(igrib,'stepRange',istep,iret)
       call grib_check(iret,thisSubr,gribErrorMsg)
+      ipf=istep+1
 
       if (gribVer.eq.1) then ! GRIB Edition 1
 
diff --git a/tests/default_options/SPECIES/SPECIES_050 b/tests/default_options/SPECIES/SPECIES_050
new file mode 100755
index 0000000000000000000000000000000000000000..53b8ee977e864d367d7be18b1c6966afb315c96d
--- /dev/null
+++ b/tests/default_options/SPECIES/SPECIES_050
@@ -0,0 +1,25 @@
+&SPECIES_PARAMS
+ PSPECIES="DUST-1um        ",
+ PDECAY= -999.900024    ,
+ PWETA_GAS= -9.89999993E-09,
+ PWETB_GAS=  0.00000000    ,
+ PCRAIN_AERO=  1.00000000    ,
+ PCSNOW_AERO=  1.00000000    ,
+ PCCN_AERO= 0.150000000    ,
+ PIN_AERO= 0.020000000    ,
+ PRELDIFF= -9.89999962    ,
+ PHENRY=  9.99999972E-10,
+ PF0=  0.00000000    ,
+ PDENSITY=  2650.00000    ,
+ PDQUER=  9.99999997E-07,
+ PDSIGMA=  1.10000002    ,
+ PDRYVEL= -9.98999977    ,
+ PWEIGHTMOLAR= -999.900024    ,
+ POHCCONST= -9.98999977    ,
+ POHDCONST= -9.89999993E-09,
+ POHNCONST=  2.00000000    ,
+ PAREA_DOW= 7*1.00000000      ,
+ PAREA_HOUR= 24*1.00000000      ,
+ PPOINT_DOW= 7*1.00000000      ,
+ PPOINT_HOUR= 24*1.00000000      ,
+ /
diff --git a/tests/default_options/SPECIES/SPECIES_051 b/tests/default_options/SPECIES/SPECIES_051
new file mode 100755
index 0000000000000000000000000000000000000000..0a88284ce590ffc641ab5099006322b7ad090ae9
--- /dev/null
+++ b/tests/default_options/SPECIES/SPECIES_051
@@ -0,0 +1,25 @@
+&SPECIES_PARAMS
+ PSPECIES="DUST-5um        ",
+ PDECAY= -999.900024    ,
+ PWETA_GAS= -9.89999993E-09,
+ PWETB_GAS=  0.00000000    ,
+ PCRAIN_AERO=  1.00000000    ,
+ PCSNOW_AERO=  1.00000000    ,
+ PCCN_AERO= 0.150000000    ,
+ PIN_AERO= 0.020000000    ,
+ PRELDIFF= -9.89999962    ,
+ PHENRY=  9.99999972E-10,
+ PF0=  0.00000000    ,
+ PDENSITY=  2650.00000    ,
+ PDQUER=  4.99999987E-06,
+ PDSIGMA=  1.10000002    ,
+ PDRYVEL= -9.98999977    ,
+ PWEIGHTMOLAR= -999.900024    ,
+ POHCCONST= -9.98999977    ,
+ POHDCONST= -9.89999993E-09,
+ POHNCONST=  2.00000000    ,
+ PAREA_DOW= 7*1.00000000      ,
+ PAREA_HOUR= 24*1.00000000      ,
+ PPOINT_DOW= 7*1.00000000      ,
+ PPOINT_HOUR= 24*1.00000000      ,
+ /
diff --git a/tests/default_winds/AVAILABLE_europe b/tests/default_winds/AVAILABLE_europe
new file mode 100644
index 0000000000000000000000000000000000000000..148f27c135e285b93a3dfbdcd920e4550a05d980
--- /dev/null
+++ b/tests/default_winds/AVAILABLE_europe
@@ -0,0 +1,5 @@
+XXXXXX EMPTY LINES XXXXXXXXX
+XXXXXX EMPTY LINES XXXXXXXX
+YYYYMMDD HHMMSS   name of the file(up to 80 characters)
+20090101 000000      EAe2009010100    ON DISK
+20090101 060000      EAe2009010106    ON DISK
diff --git a/tests/default_winds/AVAILABLE_glob b/tests/default_winds/AVAILABLE_glob
new file mode 100644
index 0000000000000000000000000000000000000000..1cac537d7f4e3e5543525c5ab1cc5ae11faa1246
--- /dev/null
+++ b/tests/default_winds/AVAILABLE_glob
@@ -0,0 +1,5 @@
+XXXXXX EMPTY LINES XXXXXXXXX
+XXXXXX EMPTY LINES XXXXXXXX
+YYYYMMDD HHMMSS   name of the file(up to 80 characters)
+20090101 000000      EA2009010100    ON DISK
+20090101 060000      EA2009010106    ON DISK
diff --git a/tests/default_winds/EA2009010100.REMOVED.git-id b/tests/default_winds/EA2009010100.REMOVED.git-id
new file mode 100644
index 0000000000000000000000000000000000000000..5befc8177e03bdd5d9ba6320cac007e30ae5ff5e
--- /dev/null
+++ b/tests/default_winds/EA2009010100.REMOVED.git-id
@@ -0,0 +1 @@
+b257d5b2f91f61d99001f2da6f12c70af76e9639
\ No newline at end of file
diff --git a/tests/default_winds/EA2009010106.REMOVED.git-id b/tests/default_winds/EA2009010106.REMOVED.git-id
new file mode 100644
index 0000000000000000000000000000000000000000..83e7dfa9cae95894ed26c2fa86997f88d99de9e1
--- /dev/null
+++ b/tests/default_winds/EA2009010106.REMOVED.git-id
@@ -0,0 +1 @@
+bb308d6b212632c31de78354e11baa4cdd005916
\ No newline at end of file
diff --git a/tests/default_winds/EAe2009010100.REMOVED.git-id b/tests/default_winds/EAe2009010100.REMOVED.git-id
new file mode 100644
index 0000000000000000000000000000000000000000..8d4322facff85dfd239cb30ccf0bcd4d10bef3ee
--- /dev/null
+++ b/tests/default_winds/EAe2009010100.REMOVED.git-id
@@ -0,0 +1 @@
+ca1503e70b3d62e549899ae34fca67ed1deed273
\ No newline at end of file
diff --git a/tests/default_winds/EAe2009010106.REMOVED.git-id b/tests/default_winds/EAe2009010106.REMOVED.git-id
new file mode 100644
index 0000000000000000000000000000000000000000..0a98a706201c172aa69bc722391c95b66a0acaf9
--- /dev/null
+++ b/tests/default_winds/EAe2009010106.REMOVED.git-id
@@ -0,0 +1 @@
+9198f7028dfc7df0be82cdddd4fc48a5f78277c3
\ No newline at end of file
diff --git a/tests/part_ic.nc b/tests/part_ic.nc
new file mode 100644
index 0000000000000000000000000000000000000000..5ec33e537c4e90c2732b3564b5be5e81de33fcdc
Binary files /dev/null and b/tests/part_ic.nc differ
diff --git a/tests/pathnames_nests b/tests/pathnames_nests
new file mode 100644
index 0000000000000000000000000000000000000000..491ada3f98de456481e7f9076f5791dc24dd6b53
--- /dev/null
+++ b/tests/pathnames_nests
@@ -0,0 +1,7 @@
+./current/
+./output/
+./default_winds/
+./default_winds/AVAILABLE_glob
+./default_winds/
+./default_winds/AVAILABLE_europe
+============================================
\ No newline at end of file
diff --git a/tests/run_default_options_test.sh b/tests/run_default_options_test.sh
index 2c4d63ad8c7f772a2c390993a08b53892d63b702..8b84987e442a19685aed632ff1de79e056509754 100644
--- a/tests/run_default_options_test.sh
+++ b/tests/run_default_options_test.sh
@@ -278,7 +278,24 @@ TESTSRUN=$((TESTSRUN + 1))
 rm -rf ./current ./output/*
 #
 #
+#PART_IC.NC input
+cp -rf ./default_options ./current
+sed -i "/IPIN=/c\ IPIN=  3," ./current/COMMAND
+sed -i "/LDIRECT=/c\ LDIRECT=   -1," ./current/COMMAND
+sed -i "/IOUTPUTFOREACHRELEASE=/c\ IOUTPUTFOREACHRELEASE=  1," ./current/COMMAND
+sed -i "/IOUT=/c\ IOUT=  1," ./current/COMMAND
+sed -i "/IETIME=/c\ LOUTSTEP=  010000," ./current/COMMAND
+sed -i "/LOUTSTEP=/c\ LOUTSTEP=  3600," ./current/COMMAND
+sed -i "/LOUTAVER=/c\ LOUTAVER=  3600," ./current/COMMAND
+cp -rf part_ic.nc output/
+./FLEXPART pathnames
+report "[$MM] TEST $TESTRUN (IPIN=3)"
+STATUS=$((STATUS + $?))
+TESTSRUN=$((TESTSRUN + 1))
+# clean up
+rm -rf ./current ./output/*
 #
+''
 #IFLUX
 cp -rf ./default_options ./current
 sed -i "/IFLUX=/c\ IFLUX=  1," ./current/COMMAND
diff --git a/tests/run_nests_test.sh b/tests/run_nests_test.sh
new file mode 100644
index 0000000000000000000000000000000000000000..11be1af3474f78087985db9dd903f17e0edf8cb0
--- /dev/null
+++ b/tests/run_nests_test.sh
@@ -0,0 +1,70 @@
+#!/bin/bash
+# By LB
+# run ETEX simulations
+RED='\033[0;31m'
+GREEN='\033[0;32m'
+YELLOW='\033[1;33m'
+NC='\033[0m'
+MM='FLEXPART MANUAL NESTS TEST'
+
+warning() {
+    printf "%-68s[$YELLOW%10s$NC]\n" "$@" "SKIPPED"
+    return 0
+}
+
+report() {
+    if [ $? -eq 0 ]; then
+        printf "%-68s[$GREEN%10s$NC]\n" "$@" "OK"
+        return 0
+    else
+        printf "%-68s[$RED%10s$NC]\n" "$@" "FAILED"
+        return 1
+    fi
+}
+#
+# initial conditions
+#
+warning "[$MM] $PWD"
+#
+# Change to directory of this script
+#
+cd $(dirname $0)
+#
+# Check for Flexpart executable build before
+#
+test -f ../src/FLEXPART
+report "[$MM] executable: ../src/FLEXPART" || exit 1
+ln -s ../src/FLEXPART .
+ln -s ../src/FLEXPART_ETA .
+test -d ./default_options
+report "[$MM] default options: ./default_options" || exit 1
+cp -rf ./default_options ./current
+#
+# Different options tests
+#
+STATUS=0
+TESTSRUN=0
+# run Options test with nested output
+#
+sed -i "/LOUTNETCDFOUT=/c\ LOUTNETCDFOUT=  1," ./current/COMMAND
+
+mkdir -p ./output/
+./FLEXPART pathnames_nests
+report "[$MM] TEST $TESTRUN (NESTS)"
+
+STATUS=$((STATUS + $?))
+TESTSRUN=$((TESTSRUN + 1))
+
+./FLEXPART_ETA pathnames_nests
+report "[$MM] TEST $TESTRUN (ETA NESTS)"
+
+STATUS=$((STATUS + $?))
+TESTSRUN=$((TESTSRUN + 1))
+#
+# FINAL
+#
+echo "[$MM] Tests failed: $STATUS / $TESTSRUN"
+#
+# Return collective error status
+#
+exit $STATUS
\ No newline at end of file