diff --git a/src/MNH/modd_type_statprof.f90 b/src/MNH/modd_type_statprof.f90
index 24d4d7e19bcf565891cc60958180732be5d35fde..747825bd728d0e725e57119a87bb835823074198 100644
--- a/src/MNH/modd_type_statprof.f90
+++ b/src/MNH/modd_type_statprof.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2022 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2023 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -100,6 +100,7 @@ TYPE, EXTENDS( TSTATPROFDATA ) ::  TSTATIONDATA
   INTEGER :: NK = NNEGUNDEF ! Model level for altitude comparisons
 
   REAL :: XZS  = XUNDEF  ! zs(n)
+  REAL :: XZMEAS = XUNDEF ! interpolated altitude used for measurements
 
   ! (n: recording instants)
   REAL, DIMENSION(:),   ALLOCATABLE :: XZON    ! zonal wind(n)
diff --git a/src/MNH/statprof_tools.f90 b/src/MNH/statprof_tools.f90
index 79eb36b28e7c6624156a2cc2f52547ec23f7841b..09fcf049b2a7e7e90b44aa9f1c6097fe89446593 100644
--- a/src/MNH/statprof_tools.f90
+++ b/src/MNH/statprof_tools.f90
@@ -384,6 +384,7 @@ SUBROUTINE STATPROF_POSITION( TPSTATPROF, OINSIDE, OPRESENT )
         !If the station/profiler is nearer from the lower level, select it
         IF ( ( ZHIGH - TPSTATPROF%XZ ) > ( TPSTATPROF%XZ - ZLOW ) ) JK = JK - 1
         TPSTATPROF%NK = JK
+        TPSTATPROF%XZMEAS = STATPROF_INTERP_2D( TPSTATPROF, XZZ(:,:,JK) )
 
       CLASS DEFAULT
         CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'STATPROF_POSITION', 'unknown type for TPSTATPROF', OLOCAL = .TRUE. )
@@ -475,6 +476,7 @@ SUBROUTINE STATION_ADD( TPSTATION )
   TZSTATIONS(NUMBSTAT_LOC)%XXUCOEF = TPSTATION%XXUCOEF
   TZSTATIONS(NUMBSTAT_LOC)%XYVCOEF = TPSTATION%XYVCOEF
   TZSTATIONS(NUMBSTAT_LOC)%NK      = TPSTATION%NK
+  TZSTATIONS(NUMBSTAT_LOC)%XZMEAS  = TPSTATION%XZMEAS
 
   IF ( ASSOCIATED( TSTATIONS ) ) DEALLOCATE( TSTATIONS ) !Can be done without memory leak because allocatable arrays were
                                                          !not yet allocated (will be done in STATION_ALLOCATE)
diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90
index 0b5bc8d6347e5bb32675c57e8e66176431a01298..4ee77a53fd8ebd1548802625ffdc3572f8dac451 100644
--- a/src/MNH/write_stationn.f90
+++ b/src/MNH/write_stationn.f90
@@ -126,7 +126,7 @@ CALL STATION_ALLOCATE( TZSTATION, SIZE( tstations_time%tpdates ) )
 !Determine the size of the ZPACK buffer used to transfer station data in 1 MPI communication
 IF ( ISNPROC > 1 ) THEN
   ISTORE = SIZE( TSTATIONS_TIME%TPDATES )
-  IPACKSIZE = 7
+  IPACKSIZE = 9
   IPACKSIZE = IPACKSIZE + ISTORE * ( 5 + NRR + NSV )
   IF ( CTURB == 'TKEL') IPACKSIZE = IPACKSIZE + ISTORE !Tke term
   IF ( CRAD /= 'NONE' ) IPACKSIZE = IPACKSIZE + ISTORE !XTSRAD term
@@ -153,13 +153,15 @@ STATION: DO JS = 1, INUMSTAT
     IF ( ISP == ISTATPRCRANK(JS) ) THEN
       ! This process has the data and needs to send it to the writer process
       IPOS = 1
-      ZPACK(IPOS) = TSTATIONS(IDX)%NID;  IPOS = IPOS + 1
-      ZPACK(IPOS) = TSTATIONS(IDX)%XX;   IPOS = IPOS + 1
-      ZPACK(IPOS) = TSTATIONS(IDX)%XY;   IPOS = IPOS + 1
-      ZPACK(IPOS) = TSTATIONS(IDX)%XZ;   IPOS = IPOS + 1
-      ZPACK(IPOS) = TSTATIONS(IDX)%XLON; IPOS = IPOS + 1
-      ZPACK(IPOS) = TSTATIONS(IDX)%XLAT; IPOS = IPOS + 1
-      ZPACK(IPOS) = TSTATIONS(IDX)%XZS;  IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%NID;    IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%XX;     IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%XY;     IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%XZ;     IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%XLON;   IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%XLAT;   IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%XZS;    IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%NK;     IPOS = IPOS + 1
+      ZPACK(IPOS) = TSTATIONS(IDX)%XZMEAS; IPOS = IPOS + 1
       ZPACK(IPOS:IPOS+ISTORE-1) = TSTATIONS(IDX)%XZON(:); IPOS = IPOS + ISTORE
       ZPACK(IPOS:IPOS+ISTORE-1) = TSTATIONS(IDX)%XMER(:); IPOS = IPOS + ISTORE
       ZPACK(IPOS:IPOS+ISTORE-1) = TSTATIONS(IDX)%XW(:);   IPOS = IPOS + ISTORE
@@ -214,13 +216,15 @@ STATION: DO JS = 1, INUMSTAT
       CALL MPI_RECV( ZPACK, IPACKSIZE, MNHREAL_MPI, ISTATPRCRANK(JS) - 1, ITAG, TPDIAFILE%NMPICOMM, MPI_STATUS_IGNORE, IERR )
 
       IPOS = 1
-      TZSTATION%NID  = NINT( ZPACK(IPOS) ); IPOS = IPOS + 1
-      TZSTATION%XX   = ZPACK(IPOS);         IPOS = IPOS + 1
-      TZSTATION%XY   = ZPACK(IPOS);         IPOS = IPOS + 1
-      TZSTATION%XZ   = ZPACK(IPOS);         IPOS = IPOS + 1
-      TZSTATION%XLON = ZPACK(IPOS);         IPOS = IPOS + 1
-      TZSTATION%XLAT = ZPACK(IPOS);         IPOS = IPOS + 1
-      TZSTATION%XZS  = ZPACK(IPOS);         IPOS = IPOS + 1
+      TZSTATION%NID    = NINT( ZPACK(IPOS) ); IPOS = IPOS + 1
+      TZSTATION%XX     = ZPACK(IPOS);         IPOS = IPOS + 1
+      TZSTATION%XY     = ZPACK(IPOS);         IPOS = IPOS + 1
+      TZSTATION%XZ     = ZPACK(IPOS);         IPOS = IPOS + 1
+      TZSTATION%XLON   = ZPACK(IPOS);         IPOS = IPOS + 1
+      TZSTATION%XLAT   = ZPACK(IPOS);         IPOS = IPOS + 1
+      TZSTATION%XZS    = ZPACK(IPOS);         IPOS = IPOS + 1
+      TSTATIONS%NK     = NINT( ZPACK(IPOS) ); IPOS = IPOS + 1
+      TZSTATION%XZMEAS = ZPACK(IPOS);         IPOS = IPOS + 1
       TZSTATION%XZON(:) = ZPACK(IPOS:IPOS+ISTORE-1); IPOS = IPOS + ISTORE
       TZSTATION%XMER(:) = ZPACK(IPOS:IPOS+ISTORE-1); IPOS = IPOS + ISTORE
       TZSTATION%XW(:)   = ZPACK(IPOS:IPOS+ISTORE-1); IPOS = IPOS + ISTORE
@@ -281,7 +285,6 @@ USE MODD_CONF,          ONLY: LCARTESIAN
 USE MODD_CST,           ONLY: XRV
 use modd_field,         only: NMNHDIM_STATION_TIME, NMNHDIM_STATION_PROC, NMNHDIM_UNUSED, &
                               tfieldmetadata_base, TYPEREAL
-use modd_grid_n,        only: xzz
 USE MODD_IO,            ONLY: TFILEDATA
 USE MODD_NSV,           ONLY: nsv, nsv_aer, nsv_aerbeg, nsv_aerend, &
                               nsv_dst, nsv_dstbeg, nsv_dstend, nsv_slt, nsv_sltbeg, nsv_sltend, &
@@ -293,7 +296,6 @@ use modd_type_statprof, only: tstationdata
 USE MODE_AERO_PSD
 USE MODE_DUST_PSD
 USE MODE_SALT_PSD
-use mode_statprof_tools, only: Statprof_interp_2d
 use MODE_WRITE_DIACHRO,  ONLY: Write_diachro
 
 TYPE(TFILEDATA),    INTENT(IN) :: TPDIAFILE ! diachronic file to write
@@ -349,11 +351,9 @@ JPROC = 0
 call Add_point( 'ZS', 'Orography', 'm',  SPREAD( tpstation%xzs, 1, istore ) )
 call Add_point( 'P',  'Pressure',  'Pa', tpstation%xp(:) )
 call Add_point( 'Z',  'altitude', 'm', SPREAD( tpstation%xz, 1, istore ) )
+call Add_point( 'Zmeas', 'interpolated altitude used for measurements', 'm', SPREAD( tpstation%xzmeas, 1, istore ) )
 call Add_point( 'K',  'vertical model level used for computations', '1', SPREAD( REAL( tpstation%nk ), 1, istore ) )
 
-zalt_meas = Statprof_interp_2d( tpstation, xzz(:,:,tpstation%nk) )
-call Add_point( 'Zmeas', 'interpolated altitude used for measurements', 'm', SPREAD( zalt_meas, 1, istore ) )
-
 
 if ( lcartesian ) then
   call Add_point( 'X', 'X Pos', 'm', SPREAD( tpstation%xx, 1, istore ) )