diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90
index 8846fbaf118e3b264d62e93e52dfe87340d5b50b..9e361758f9f2bacdc899da99d8f38934dbf23672 100644
--- a/src/LIB/SURCOUCHE/src/mode_field.f90
+++ b/src/LIB/SURCOUCHE/src/mode_field.f90
@@ -1264,6 +1264,47 @@ ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
 IDX = IDX+1
 !
 IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
+TFIELDLIST(IDX)%CMNHNAME   = 'HORELAX_TKE'
+TFIELDLIST(IDX)%CSTDNAME   = ''
+TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH: HORELAX_TKE'
+TFIELDLIST(IDX)%CUNITS     = ''
+TFIELDLIST(IDX)%CDIR       = '--'
+TFIELDLIST(IDX)%CCOMMENT   = 'Switch to activate the HOrizontal RELAXation'
+TFIELDLIST(IDX)%NGRID      = 1
+TFIELDLIST(IDX)%NTYPE      = TYPELOG
+TFIELDLIST(IDX)%NDIMS      = 0
+ALLOCATE(TFIELDLIST(IDX)%TFIELD_L0D(IMODEL))
+IDX = IDX+1
+!
+IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
+TFIELDLIST(IDX)%CMNHNAME   = 'LBXTKEM'
+TFIELDLIST(IDX)%CSTDNAME   = ''
+TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH: LBXTKEM'
+TFIELDLIST(IDX)%CUNITS     = 'm2 s-2'
+TFIELDLIST(IDX)%CDIR       = 'XY'
+TFIELDLIST(IDX)%CLBTYPE    = 'LBX'
+TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBXTKEM'
+TFIELDLIST(IDX)%NGRID      = 1
+TFIELDLIST(IDX)%NTYPE      = TYPEREAL
+TFIELDLIST(IDX)%NDIMS      = 3
+ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
+IDX = IDX+1
+!
+IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
+TFIELDLIST(IDX)%CMNHNAME   = 'LBYTKEM'
+TFIELDLIST(IDX)%CSTDNAME   = ''
+TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH: LBYTKEM'
+TFIELDLIST(IDX)%CUNITS     = 'm2 s-2'
+TFIELDLIST(IDX)%CDIR       = 'XY'
+TFIELDLIST(IDX)%CLBTYPE    = 'LBY'
+TFIELDLIST(IDX)%CCOMMENT   = '2_Y_Z_LBYTKEM'
+TFIELDLIST(IDX)%NGRID      = 1
+TFIELDLIST(IDX)%NTYPE      = TYPEREAL
+TFIELDLIST(IDX)%NDIMS      = 3
+ALLOCATE(TFIELDLIST(IDX)%TFIELD_X3D(IMODEL))
+IDX = IDX+1
+!
+IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST()
 TFIELDLIST(IDX)%CMNHNAME   = 'DRYMASST'
 TFIELDLIST(IDX)%CSTDNAME   = ''
 TFIELDLIST(IDX)%CLONGNAME  = 'MesoNH: DRYMASST'
@@ -1773,6 +1814,10 @@ IF (.NOT.ASSOCIATED(LHORELAX_UVWTH)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' LHORELAX_UVWTH was not associated')
   ALLOCATE(LHORELAX_UVWTH)
 END IF
+IF (.NOT.ASSOCIATED(LHORELAX_TKE)) THEN
+  CALL PRINT_MSG(NVERB_DEBUG,'GEN','ALLOC_FIELD_SCALARS',' LHORELAX_TKE was not associated')
+  ALLOCATE(LHORELAX_TKE)
+END IF
 !
 END SUBROUTINE ALLOC_FIELD_SCALARS
 !
@@ -1800,72 +1845,85 @@ IF (.NOT.ASSOCIATED(LSLEVE)) THEN
   CALL FIND_FIELD_ID_FROM_MNHNAME('SLEVE',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LSLEVE
 END IF
+!
 IF (.NOT.ASSOCIATED(XLEN1)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XLEN1 was not associated')
   ALLOCATE(XLEN1)
   CALL FIND_FIELD_ID_FROM_MNHNAME('LEN1',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XLEN1
 END IF
+!
 IF (.NOT.ASSOCIATED(XLEN2)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XLEN2 was not associated')
   ALLOCATE(XLEN2)
   CALL FIND_FIELD_ID_FROM_MNHNAME('LEN2',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XLEN2
 END IF
+!
 IF (.NOT.ASSOCIATED(TDTMOD)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTMOD was not associated')
   ALLOCATE(TDTMOD)
   CALL FIND_FIELD_ID_FROM_MNHNAME('DTMOD',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTMOD
 END IF
+!
 IF (.NOT.ASSOCIATED(TDTCUR)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTCUR was not associated')
   ALLOCATE(TDTCUR)
   CALL FIND_FIELD_ID_FROM_MNHNAME('DTCUR',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTCUR
 END IF
+!
 IF (.NOT.ASSOCIATED(TDTRAD_FULL)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTRAD_FULL was not associated')
   ALLOCATE(TDTRAD_FULL)
   CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_FULL',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTRAD_FULL
 END IF
+!
 IF (.NOT.ASSOCIATED(TDTRAD_CLONLY)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTRAD_CLONLY was not associated')
   ALLOCATE(TDTRAD_CLONLY)
   CALL FIND_FIELD_ID_FROM_MNHNAME('DTRAD_CLLY',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTRAD_CLONLY
 END IF
+!
 IF (.NOT.ASSOCIATED(TDTDCONV)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' TDTDCONV was not associated')
   ALLOCATE(TDTDCONV)
   CALL FIND_FIELD_ID_FROM_MNHNAME('DTDCONV',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_T0D(1)%DATA=>TDTDCONV
 END IF
+!
 IF (.NOT.ASSOCIATED(CSURF)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' CSURF was not associated')
   ALLOCATE(CHARACTER(LEN=4) :: CSURF)
   CALL FIND_FIELD_ID_FROM_MNHNAME('SURF',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_C0D(1)%DATA=>CSURF
 END IF
+!
 IF (.NOT.ASSOCIATED(XDRYMASST)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' XDRYMASST was not associated')
   ALLOCATE(XDRYMASST)
   CALL FIND_FIELD_ID_FROM_MNHNAME('DRYMASST',IID,IRESP)
   TFIELDLIST(IID)%TFIELD_X0D(1)%DATA=>XDRYMASST
 END IF
+!
 IF (.NOT.ASSOCIATED(NRIMX)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' NRIMX was not associated')
   ALLOCATE(NRIMX)
 END IF
+!
 CALL FIND_FIELD_ID_FROM_MNHNAME('RIMX',IID,IRESP)
 TFIELDLIST(IID)%TFIELD_N0D(1)%DATA=>NRIMX
 IF (.NOT.ASSOCIATED(NRIMY)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' NRIMY was not associated')
   ALLOCATE(NRIMY)
 END IF
+!
 CALL FIND_FIELD_ID_FROM_MNHNAME('RIMY',IID,IRESP)
 TFIELDLIST(IID)%TFIELD_N0D(1)%DATA=>NRIMY
+!
 IF (.NOT.ASSOCIATED(LHORELAX_UVWTH)) THEN
   CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' LHORELAX_UVWTH was not associated')
   ALLOCATE(LHORELAX_UVWTH)
@@ -1873,6 +1931,13 @@ END IF
 CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_UVWTH',IID,IRESP)
 TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LHORELAX_UVWTH
 !
+IF (.NOT.ASSOCIATED(LHORELAX_TKE)) THEN
+  CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_SCALARS',' LHORELAX_TKE was not associated')
+  ALLOCATE(LHORELAX_TKE)
+END IF
+CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_TKE',IID,IRESP)
+TFIELDLIST(IID)%TFIELD_L0D(1)%DATA=>LHORELAX_TKE
+!
 END SUBROUTINE INI_FIELD_SCALARS
 !
 !
@@ -2231,6 +2296,14 @@ IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)) THEN
 END IF
 LHORELAX_UVWTH => TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA
 !
+CALL FIND_FIELD_ID_FROM_MNHNAME('HORELAX_TKE',IID,IRESP)
+IF (.NOT.ASSOCIATED(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)) THEN
+  CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',&
+                 'TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA was not associated for '//TFIELDLIST(IID)%CMNHNAME)
+  ALLOCATE(TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA)
+END IF
+LHORELAX_TKE => TFIELDLIST(IID)%TFIELD_L0D(KTO)%DATA
+!
 ! MODD_ADV_n variables
 !
 CALL FIND_FIELD_ID_FROM_MNHNAME('TKEMS',IID,IRESP); XRTKEMS=>TFIELDLIST(IID)%TFIELD_X3D(KTO)%DATA
diff --git a/src/MNH/modd_dynn.f90 b/src/MNH/modd_dynn.f90
index 7e56e33e8a78cb4362d9112845194156c44cb6a4..204f1396eefc12cca4e16d38cc7dae3b87a8cf17 100644
--- a/src/MNH/modd_dynn.f90
+++ b/src/MNH/modd_dynn.f90
@@ -121,7 +121,7 @@ TYPE DYN_t
   LOGICAL :: LHORELAX_RV, LHORELAX_RC, LHORELAX_RR, LHORELAX_RI
   LOGICAL :: LHORELAX_RS, LHORELAX_RG, LHORELAX_RH
 !
-  LOGICAL :: LHORELAX_TKE
+!  LOGICAL :: LHORELAX_TKE
 !
   LOGICAL :: LHORELAX_SVC2R2
   LOGICAL :: LHORELAX_SVC1R3
@@ -318,7 +318,7 @@ LHORELAX_RI=>DYN_MODEL(KTO)%LHORELAX_RI
 LHORELAX_RS=>DYN_MODEL(KTO)%LHORELAX_RS
 LHORELAX_RG=>DYN_MODEL(KTO)%LHORELAX_RG
 LHORELAX_RH=>DYN_MODEL(KTO)%LHORELAX_RH
-LHORELAX_TKE=>DYN_MODEL(KTO)%LHORELAX_TKE
+!LHORELAX_TKE=>DYN_MODEL(KTO)%LHORELAX_TKE !Done in FIELDLIST_GOTO_MODEL
 LHORELAX_SVC2R2=>DYN_MODEL(KTO)%LHORELAX_SVC2R2
 LHORELAX_SVC1R3=>DYN_MODEL(KTO)%LHORELAX_SVC1R3
 LHORELAX_SVLIMA=>DYN_MODEL(KTO)%LHORELAX_SVLIMA
diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90
index 41f8029cbc3f5aca47240f9016397515e42428d8..f46ada8da769760f13afe05a53299c8bb06c245e 100644
--- a/src/MNH/write_lbn.f90
+++ b/src/MNH/write_lbn.f90
@@ -120,7 +120,7 @@ USE MODI_DUSTLFI_n
 USE MODI_SALTLFI_n
 USE MODD_PARAMETERS,      ONLY: JPHEXT
 USE MODD_IO_ll, ONLY: TFILEDATA
-USE MODE_FIELD, ONLY: TFIELDDATA
+USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL
 !
 !
 IMPLICIT NONE
@@ -196,29 +196,10 @@ YCOMMENT=''
 ILENCH=LEN(YCOMMENT)
 !
 IF(CTURB/='NONE') THEN
-  YRECFM = 'HORELAX_TKE'
-  CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,LHORELAX_TKE,IGRID,ILENCH,YCOMMENT,IRESP)
+  CALL IO_WRITE_FIELD(TPFILE,'HORELAX_TKE',CLUOUT,IRESP,LHORELAX_TKE)
 !
-  IRIMX =(NSIZELBXTKE_ll-2*JPHEXT)/2
-  IRIMY =(NSIZELBYTKE_ll-2*JPHEXT)/2
-
-  IF(NSIZELBXTKE_ll /= 0) THEN
-    YRECFM='LBXTKEM'
-    YCOMMENT='2_Y_Z_LBXTKEM (M**2/S**2)'
-    IGRID=1
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXTKEM,IRIMX,NSIZELBXTKE_ll,&
-       & IGRID,ILENCH,YCOMMENT,IRESP)
-  END IF
-!
-  IF(NSIZELBYTKE_ll /= 0) THEN
-    YRECFM='LBYTKEM'
-    YCOMMENT='X_2_Z_LBYTKEM (M**2/S**2)'
-    IGRID=1
-    ILENCH=LEN(YCOMMENT)
-    CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYTKEM,IRIMY,NSIZELBYTKE_ll,&
-         & IGRID,ILENCH,YCOMMENT,IRESP)
-  END IF
+  IF(NSIZELBXTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXTKEM',CLUOUT,NSIZELBXTKE_ll,IRESP,XLBXTKEM)
+  IF(NSIZELBYTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYTKEM',CLUOUT,NSIZELBYTKE_ll,IRESP,XLBYTKEM)
 END IF
 !
 !
@@ -226,43 +207,57 @@ END IF
 !            -----
 !
 IF (NRR >=1) THEN
-  IGRID=1
   GHORELAX_R = LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. &
                LHORELAX_RI .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. &
                LHORELAX_RH
-  YRECFM = 'HORELAX_R'
-  YCOMMENT=' '
-  ILENCH=LEN(YCOMMENT)
-  CALL FMWRIT(YFMFILE,YRECFM,CLUOUT,YDIR,GHORELAX_R,IGRID,ILENCH,YCOMMENT,IRESP)
+!
+  TZFIELD%CMNHNAME   = 'HORELAX_R'
+  TZFIELD%CSTDNAME   = ''
+  TZFIELD%CLONGNAME  = 'MesoNH: HORELAX_R'
+  TZFIELD%CUNITS     = ''
+  TZFIELD%CDIR       = '--'
+  TZFIELD%CCOMMENT   = 'Switch to activate the HOrizontal RELAXation'
+  TZFIELD%NGRID      = 1
+  TZFIELD%NTYPE      = TYPELOG
+  TZFIELD%NDIMS      = 0
+!
+  CALL IO_WRITE_FIELD(TPFILE,TZFIELD,CLUOUT,IRESP,GHORELAX_R)
 !
   GUSER(:)=(/LUSERV,LUSERC,LUSERR,LUSERI,LUSERS,LUSERG,LUSERH/)
   YC(:)=(/"V","C","R","I","S","G","H"/)
-  IRIMX =(NSIZELBXR_ll-2*JPHEXT)/2
-  IRIMY =(NSIZELBYR_ll-2*JPHEXT)/2
   IRR=0
+!
+  TZFIELD%CSTDNAME   = ''
+  TZFIELD%CUNITS     = 'kg kg-1'
+  TZFIELD%CDIR       = '--'
+  TZFIELD%NGRID      = 1
+  TZFIELD%NTYPE      = TYPEREAL
+  TZFIELD%NDIMS      = 3
 ! Loop on moist variables
   DO JRR=1,7
     IF (GUSER(JRR)) THEN
       IRR=IRR+1 
       IF(NSIZELBXR_ll /= 0) THEN
-        YRECFM= 'LBXR'//YC(JRR)//'M'
-        YCOMMENT= '2_Y_Z_LBXR'//YC(JRR)//'M (KG/KG)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXRM(:,:,:,IRR),IRIMX,NSIZELBXR_ll,&
-             & IGRID,ILENCH,YCOMMENT,IRESP)
+        TZFIELD%CMNHNAME   = 'LBXR'//YC(JRR)//'M'
+        TZFIELD%CLONGNAME  = 'MesoNH: LBXR'//YC(JRR)//'M'
+        TZFIELD%CLBTYPE    = 'LBX'
+        TZFIELD%CCOMMENT   = '2_Y_Z_LBXR'//YC(JRR)//'M'
+        CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXR_ll,IRESP,XLBXRM(:,:,:,IRR))
       END IF
 !
       IF(NSIZELBYR_ll /= 0) THEN
-        YRECFM= 'LBYR'//YC(JRR)//'M'
-        YCOMMENT= '2_Y_Z_LBYR'//YC(JRR)//'M (KG/KG)'
-        ILENCH=LEN(YCOMMENT)
-        CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYRM(:,:,:,IRR),IRIMY,NSIZELBYR_ll,&
-             & IGRID,ILENCH,YCOMMENT,IRESP)
+        TZFIELD%CMNHNAME   = 'LBYR'//YC(JRR)//'M'
+        TZFIELD%CLONGNAME  = 'MesoNH: LBYR'//YC(JRR)//'M'
+        TZFIELD%CLBTYPE    = 'LBY'
+        TZFIELD%CCOMMENT   = '2_Y_Z_LBYR'//YC(JRR)//'M'
+        CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXR_ll,IRESP,XLBYRM(:,:,:,IRR))
       END IF
     END IF
   END DO
 END IF
 !
+TZFIELD%CLBTYPE = 'NONE' !Just to be careful
+!
 !*        7  LB-SV
 !            -----
 !