Index: README_PARALLEL.md
===================================================================
--- README_PARALLEL.md	(revision fb0d416bb2d1b6891a7d5abd9ed4cc4cfb03f275)
+++ README_PARALLEL.md	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -120,5 +120,5 @@
   FLEXPART-MPI is run with no (or just a few) particles, no performance 
   improvement is possible. In this case, most processing time is spent
-  in the 'getfields'-routine (ECMWF).
+  in the 'getfields'-routine.
 
   A) Running without dedicated reader process
Index: options/COMMAND
===================================================================
--- options/COMMAND	(revision 5f9d14aa526df192efa539f87fc409fdeeeee06c)
+++ options/COMMAND	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -12,5 +12,5 @@
  CTL= -5.0000000    ,
  IFINE=          4,
- IOUT=          1,
+ IOUT=          9,
  IPOUT=          0,
  LSUBGRID=          1,
@@ -28,3 +28,4 @@
  SURF_ONLY=          0,
  CBLFLAG=          0,
+ OHFIELDS_PATH=          "../../flexin/",
  /
Index: options/OUTGRID
===================================================================
--- options/OUTGRID	(revision f9ce123b9b047af2fdd26aa67406bfdc873bbafd)
+++ options/OUTGRID	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -6,71 +6,151 @@
 ********************************************************************************
 
+1.  ------.----       4X,F11.4
+      -179.0000       GEOGRAFICAL LONGITUDE OF LOWER LEFT CORNER OF OUTPUT GRID
+    OUTLONLEFT        (left boundary of the first grid cell - not its centre)
 
-      -179.0000
+2.  ------.----       4X,F11.4
+       -90.0000       GEOGRAFICAL LATITUDE OF LOWER LEFT CORNER OF OUTPUT GRID
+    OUTLATLOWER       (lower boundary of the first grid cell - not its centre)
+
+3.  -----             4X,I5
+     720               NUMBER OF GRID POINTS IN X DIRECTION (= No. of cells + 1)
+    NUMXGRID
+
+4.  -----             4X,I5
+     360             NUMBER OF GRID POINTS IN Y DIRECTION (= No. of cells + 1)
+    NUMYGRID
+
+5.  ------.---        4X,F10.3
+         0.50        GRID DISTANCE IN X DIRECTION
+    DXOUTLON
+
+6.  ------.---        4X,F10.3
+         0.50        GRID DISTANCE IN Y DIRECTION
+    DYOUTLAT
+
+10. -----.-           4X, F7.1
+     1000.0
+    LEVEL 1           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     2000.0
+    LEVEL 2           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     3000.0
+    LEVEL 3           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     4000.0
+    LEVEL 4           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     5000.0
+    LEVEL 5           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     6000.0
+    LEVEL 6           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     7000.0
+    LEVEL 7           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     8000.0
+    LEVEL 8           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+     9000.0
+    LEVEL 9           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    10000.0
+    LEVEL10           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    11000.0
+    LEVEL11           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    12000.0
+    LEVEL12           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    13000.0
+    LEVEL13           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    14000.0
+    LEVEL14           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    15000.0
+    LEVEL15           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    16000.0
+    LEVEL16           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    17000.0
+    LEVEL17           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    18000.0
+    LEVEL18           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    19000.0
+    LEVEL19           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    20000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    21000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    22000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    23000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    24000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    25000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    26000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    27000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    28000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    29000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    30000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
+
+10. -----.-           4X, F7.1
+    40000.0
+    LEVEL20           HEIGHT OF LEVEL (UPPER BOUNDARY)
 
 
-
-       -90.0000
-
-
-
-      360
-
-
-
-      180
-
-
-
-         1.000
-
-
-
-         1.000
-
-
-
-      400.0
-
-
-
-     1000.0
-
-
-
-     2000.0
-
-
-
-     3000.0
-
-
-
-     5000.0
-
-
-
-     7000.0
-
-
-
-     9000.0
-
-
-
-    12000.0
-
-
-
-    15000.0
-
-
-
-    20000.0
-
-
-
-    50000.0
-
-
-
Index: options/RELEASES
===================================================================
--- options/RELEASES	(revision fb0d416bb2d1b6891a7d5abd9ed4cc4cfb03f275)
+++ options/RELEASES	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -16,5 +16,5 @@
  ZKIND=     1,
  MASS=  2.0000E8    ,
- PARTS=   20000000
+ PARTS=   2000000
  COMMENT="TEST1                          ",
  /
@@ -32,5 +32,5 @@
  ZKIND=     1,
  MASS=  2.0000E8    ,
- PARTS=   20000000
+ PARTS=   2000000
  COMMENT="TEST2                          ",
  /
Index: options/SPECIES/SPECIES_108
===================================================================
--- options/SPECIES/SPECIES_108	(revision f9ce123b9b047af2fdd26aa67406bfdc873bbafd)
+++ options/SPECIES/SPECIES_108	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -3,5 +3,5 @@
 *     Input file for the Lagrangian particle dispersion model FLEXPART     *
 *               Definition file of chemical species/radionuclides          *
-* ESO: edited to work with Rona's changes+Henrik                           *
+*     This file is on the format required by version 10 (05/2015)          *
 ****************************************************************************
 SO2                Tracer name
@@ -19,5 +19,5 @@
 -9.99              Alternative: dry deposition velocity
  64.00             molweight
--1.35E-14           OH Reaction rate - C [cm^3/molecule/sec]
+1.35E-14           OH Reaction rate - C [cm^3/molecule/sec]
 120.0              OH Reaction rate - D [K]
 2.0                OH Reaction rate - N (no unit)
Index: src/FLEXPART.f90
===================================================================
--- src/FLEXPART.f90	(revision 8a65cb0801b09eb0ae933a1afabbe10361a9021b)
+++ src/FLEXPART.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -69,5 +69,5 @@
 
   ! FLEXPART version string
-  flexversion='Version 10.0pre  (2015-03-01)'
+  flexversion='Version 10.0beta (2015-05-01)'
   verbosity=0
 
Index: src/FLEXPART_MPI.f90
===================================================================
--- src/FLEXPART_MPI.f90	(revision fb0d416bb2d1b6891a7d5abd9ed4cc4cfb03f275)
+++ src/FLEXPART_MPI.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -77,5 +77,5 @@
 
   ! FLEXPART version string
-  flexversion='Ver. 10.0pre MPI (2015-03-01)'
+  flexversion='Ver. 10 Beta MPI (2015-05-01)'
   verbosity=0
 
@@ -337,5 +337,4 @@
 
   if (mp_measure_time) call mpif_mtime('iotime',0)
-! :DEV: was a bug here (all processes writing)?
   if (lroot) then ! MPI: this part root process only
 
Index: src/com_mod.f90
===================================================================
--- src/com_mod.f90	(revision f9ce123b9b047af2fdd26aa67406bfdc873bbafd)
+++ src/com_mod.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -26,4 +26,5 @@
   integer :: length(numpath+2*maxnests)
   character(len=256) :: pathfile, flexversion, arg1, arg2
+  character(len=256) :: ohfields_path
   
   ! path                    path names needed for trajectory model
@@ -32,4 +33,5 @@
   ! flexversion             version of flexpart
   ! arg                     input arguments from launch at command line
+  ! ohfields_path           path to binary files for OH fields
 
   !********************************************************
Index: src/makefile
===================================================================
--- src/makefile	(revision fb0d416bb2d1b6891a7d5abd9ed4cc4cfb03f275)
+++ src/makefile	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -36,10 +36,10 @@
 
 ## COMPILERS
-#F90       = /usr/bin/gfortran
-F90	  = ${HOME}/gcc-4.9.1/bin/gfortran
+F90       = /usr/bin/gfortran
+#F90	  = ${HOME}/gcc-4.9.1/bin/gfortran
 #MPIF90    = ${HOME}/opt/bin/mpifort
 #MPIF90    = mpif90.mpich
-#MPIF90    = mpif90.openmpi
-MPIF90    = mpifort
+MPIF90    = mpif90.openmpi
+#MPIF90    = mpifort
 
 ## OPTIMIZATION LEVEL
@@ -51,15 +51,14 @@
 
 ## 1) System libraries at NILU
-# INCPATH1 = /usr/include
-# INCPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/include
-# LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib
-# LIBPATH2 = /usr/lib/x86_64-linux-gnu
+INCPATH1 = /usr/include
+#INCPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/include
+LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib
+#LIBPATH2 = /usr/lib/x86_64-linux-gnu
 
 ## 2) Home-made libraries
-INCPATH1  = ${HOME}/include
+# INCPATH1  = ${HOME}/include
 INCPATH2  = /homevip/flexpart/include/
 LIBPATH2 = /homevip/flexpart/lib/
-LIBPATH1 = ${HOME}/lib
-#LIBPATH2 = ${HOME}/lib	
+# LIBPATH1 = ${HOME}/lib
 
 FFLAGS   = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) -mtune=native -fuse-linker-plugin $(FUSER) # -march=native
@@ -191,4 +190,7 @@
 %.o: %.mod
 
+ecmwf: $(FLEXPART-ECMWF)
+ecmwf: FC := $(F90)
+
 ecmwf-mpi: $(FLEXPART-ECMWF-MPI)
 ecmwf-mpi: FC := $(MPIF90)
@@ -199,7 +201,4 @@
 ecmwf-mpi-dbg: FC := $(MPIF90)
 
-ecmwf: $(FLEXPART-ECMWF)
-ecmwf: FC := $(F90)
-
 gfs: $(FLEXPART-GFS)
 gfs: FC := $(F90)
@@ -210,4 +209,7 @@
 #all: $(FLEXPART-ECMWF-MPI)
 
+$(FLEXPART-ECMWF): $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF)
+	+$(FC) -o $@ $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF) $(LDFLAGS)
+
 $(FLEXPART-ECMWF-MPI): $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) $(OBJECTS_ECMWF_MPI)
 	+$(FC) -o $@ $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) \
@@ -219,7 +221,4 @@
 	+$(FC) -o $@ $(MODOBJS) $(MPI_MODOBJS) $(OBJECTS) $(OBJECTS_MPI) \
 	$(OBJECTS_ECMWF_MPI) $(LDFLAGS)
-
-$(FLEXPART-ECMWF): $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF)
-	+$(FC) -o $@ $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_ECMWF) $(LDFLAGS)
 
 $(FLEXPART-GFS): $(MODOBJS) $(OBJECTS) $(OBJECTS_SERIAL) $(OBJECTS_GFS)
Index: src/mpi_mod.f90
===================================================================
--- src/mpi_mod.f90	(revision fb0d416bb2d1b6891a7d5abd9ed4cc4cfb03f275)
+++ src/mpi_mod.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -117,5 +117,5 @@
   logical, parameter :: mp_dbg_out = .false.
   logical, parameter :: mp_time_barrier=.true.
-  logical, parameter :: mp_measure_time=.true. 
+  logical, parameter :: mp_measure_time=.false. 
 
 ! for measuring CPU/Wall time
@@ -139,4 +139,6 @@
   real(dp) :: mp_conccalc_time_beg, mp_conccalc_time_end, mp_conccalc_time_total=0.
   real(dp) :: mp_total_wtime_beg, mp_total_wtime_end, mp_total_wtime_total=0.
+  real(dp) :: mp_vt_wtime_beg, mp_vt_wtime_end, mp_vt_wtime_total
+  real(sp) :: mp_vt_time_beg, mp_vt_time_end, mp_vt_time_total
 
 ! dat_lun           logical unit number for i/o
@@ -418,5 +420,4 @@
 
 
-
 ! redefine numpart as 'numpart per process' throughout the code
 !**************************************************************
@@ -438,8 +439,4 @@
 
     integer :: i
-
-
-!***********************************************************************
-
 
 ! Time for MPI communications
@@ -1734,5 +1731,4 @@
     end if
 
-
     if ((WETDEP).and.(ldirect.gt.0)) then
       call MPI_Reduce(wetgriduncn, wetgriduncn0, grid_size2d, mp_pp, MPI_SUM, id_root, &
@@ -1852,4 +1848,18 @@
         mp_io_time_total = mp_io_time_total + (mp_io_time_end - &
              & mp_io_time_beg)
+      end if
+
+    case ('verttransform')
+      if (imode.eq.0) then
+        mp_vt_wtime_beg = mpi_wtime()
+        call cpu_time(mp_vt_time_beg)
+      else
+        mp_vt_wtime_end = mpi_wtime()
+        call cpu_time(mp_vt_time_end)
+
+        mp_vt_wtime_total = mp_vt_wtime_total + (mp_vt_wtime_end - &
+             & mp_vt_wtime_beg)
+        mp_vt_time_total = mp_vt_time_total + (mp_vt_time_end - &
+             & mp_vt_time_beg)
       end if
 
@@ -1956,4 +1966,8 @@
           write(*,FMT='(A60,TR1,F9.2)') 'TOTAL WALL TIME FOR CONCCALC:',&
                & mp_conccalc_time_total
+          ! write(*,FMT='(A60,TR1,F9.2)') 'TOTAL WALL TIME FOR VERTTRANSFORM:',&
+          !      & mp_vt_wtime_total
+          ! write(*,FMT='(A60,TR1,F9.2)') 'TOTAL CPU TIME FOR VERTTRANSFORM:',&
+          !      & mp_vt_time_total
 ! NB: the 'flush' function is possibly a gfortran-specific extension
           call flush()
@@ -2021,5 +2035,5 @@
     subroutine write_data_dbg(array_in, array_name, tstep, ident)
 !***********************************************************************
-! Write one-dimensional arrays to disk (for debugging purposes)
+! Write one-dimensional arrays to file (for debugging purposes)
 !***********************************************************************
       implicit none 
Index: src/readOHfield.f90
===================================================================
--- src/readOHfield.f90	(revision fb0d416bb2d1b6891a7d5abd9ed4cc4cfb03f275)
+++ src/readOHfield.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -68,5 +68,6 @@
     ! open netcdf file
     write(mm,fmt='(i2.2)') m
-    thefile=trim(path(1))//'OH_FIELDS/'//'geos-chem.OH.2005'//mm//'01.nc'
+!    thefile=trim(path(1))//'OH_FIELDS/'//'geos-chem.OH.2005'//mm//'01.nc'
+    thefile=trim(ohfields_path)//'OH_FIELDS/'//'geos-chem.OH.2005'//mm//'01.nc'
     ierr=nf_open(trim(thefile),NF_NOWRITE,nid)
     if(ierr.ne.0) then
@@ -162,5 +163,6 @@
 
   ! open netcdf file
-  thefile=trim(path(1))//'OH_FIELDS/jrate_average.nc'
+!  thefile=trim(path(1))//'OH_FIELDS/jrate_average.nc'
+  thefile=trim(ohfields_path)//'OH_FIELDS/jrate_average.nc'
   ierr=nf_open(trim(thefile),NF_NOWRITE,nid)
   if(ierr.ne.0) then
Index: src/readcommand.f90
===================================================================
--- src/readcommand.f90	(revision 8a65cb0801b09eb0ae933a1afabbe10361a9021b)
+++ src/readcommand.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -111,5 +111,6 @@
   lnetcdfout, &
   surf_only, &
-  cblflag
+  cblflag, &
+  ohfields_path
 
   ! Presetting namelist command
@@ -143,4 +144,5 @@
   surf_only=0 
   cblflag=0
+  ohfields_path="../../flexin/"
 
   ! Open the command file and read user options
@@ -232,4 +234,5 @@
     if (old) call skplin(3,unitcommand)  !added by mc
     read(unitcommand,*) cblflag          !added by mc
+
     close(unitcommand)
 
Index: src/readreleases.f90
===================================================================
--- src/readreleases.f90	(revision 5f9d14aa526df192efa539f87fc409fdeeeee06c)
+++ src/readreleases.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -385,5 +385,5 @@
     if (ohcconst(i).gt.0.) then
       OHREA=.true.
-      write (*,*) 'OHreaction switched on: ',ohcconst(i),i
+      if (lroot) write (*,*) 'OHreaction switched on: ',ohcconst(i),i
     endif
 
Index: src/timemanager.f90
===================================================================
--- src/timemanager.f90	(revision 8a65cb0801b09eb0ae933a1afabbe10361a9021b)
+++ src/timemanager.f90	(revision 5f42c27a3ad632d81e1e6ecd2f81d821b0c11373)
@@ -657,5 +657,5 @@
   if (linit_cond.ge.1) call initial_cond_output(itime)   ! dump initial cond. field
 
-  close(104)
+  !close(104)
 
   ! De-allocate memory and end
