diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90
index 0fc83da2877c6253c9ad90da0ef8aa5a7e46ef38..449f05c8df0b74cfd1343a5e778c8da224c89fc4 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2023 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2024 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.
@@ -799,10 +799,10 @@ REAL(KIND=MNHREAL64),DIMENSION(:),ALLOCATABLE :: ZFIELD8
 ILENG = SIZE(PFIELDOUT)
 !
 #if (MNH_REAL == 8)
-  PFIELDOUT(:) = TRANSFER(KFIELDIN,PFIELDOUT(1),ILENG)
+  PFIELDOUT(:) = TRANSFER(KFIELDIN,PFIELDOUT(:),ILENG)
 #else
   ALLOCATE(ZFIELD8(ILENG))
-  ZFIELD8(:) = TRANSFER(KFIELDIN,ZFIELD8(1),ILENG)
+  ZFIELD8(:) = TRANSFER(KFIELDIN,ZFIELD8(:),ILENG)
   PFIELDOUT(:) = REAL(ZFIELD8(:),KIND=MNHREAL32)
   DEALLOCATE(ZFIELD8)
 #endif
diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90
index ebca4a56cd3beb74561cec704618e1ac451a3b9b..8b44583ba8e23ac9339b232bccc6a8b17637f415 100644
--- a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90
+++ b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2024 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.
@@ -817,7 +817,7 @@ ILENG=1
 CALL WRITE_PREPARE(TZFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN(TZFIELD%CCOMMENT)+3) = TRANSFER(TPDATA%xtime,IWORK(1))
+  IWORK(LEN(TZFIELD%CCOMMENT)+3) = TRANSFER(TPDATA%xtime,IWORK(LEN(TZFIELD%CCOMMENT)+3))
   YRECFM=TRIM(TZFIELD%CMNHNAME)
   IF( LEN_TRIM(TZFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_T0','field name was truncated to '&
@@ -982,11 +982,11 @@ REAL(KIND=MNHREAL64),DIMENSION(:),ALLOCATABLE :: ZFIELD8
 ILENG = SIZE(PFIELDIN)
 !
 #if (MNH_REAL == 8)
-  KFIELDOUT(:) = TRANSFER(PFIELDIN,KFIELDOUT(1),ILENG)
+  KFIELDOUT(:) = TRANSFER(PFIELDIN,KFIELDOUT(:),ILENG)
 #else
   ALLOCATE(ZFIELD8(ILENG))
   ZFIELD8(:) = REAL(PFIELDIN(:),KIND=MNHREAL64)
-  KFIELDOUT(:) = TRANSFER(ZFIELD8,KFIELDOUT(1),ILENG)
+  KFIELDOUT(:) = TRANSFER(ZFIELD8,KFIELDOUT(:),ILENG)
   DEALLOCATE(ZFIELD8)
 #endif
 !