diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90
index bc171156015b1a1ad9cad8f8a3d48f5487afa48f..9d20fe12ac7952365ccd50580ee5db133cb3ff79 100644
--- a/src/MNH/read_all_data_grib_case.f90
+++ b/src/MNH/read_all_data_grib_case.f90
@@ -526,8 +526,7 @@ SELECT CASE (IMODEL)
   CASE(6,7) !  arpege and arome GRIB2
       CALL SEARCH_FIELD(IGRIB,INUM_ZS,KDIS=0,KCAT=3,KNUMBER=4)
        IF(INUM_ZS < 0) THEN
-        ! Old version of EPyGraM (bug corrected since 01/2020)
-        CALL SEARCH_FIELD(IGRIB,INUM_ZS,KDIS=0,KCAT=3,KNUMBER=5)
+         CALL SEARCH_FIELD(IGRIB,INUM_ZS,KDIS=0,KCAT=193,KNUMBER=5)
          IF(INUM_ZS < 0) THEN
            WRITE (ILUOUT0,'(A)')'Orography is missing - abort'
          END IF
@@ -637,7 +636,7 @@ SELECT CASE (IMODEL)
   CASE(1,2,3,4,5) ! arpege mocage aladin et aladin reunion
       CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=1)
   CASE(6,7) ! NEW AROME,ARPEGE
-     CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=3,KNUMBER=25)
+     CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=3,KNUMBER=0)
   CASE(10) ! NCEP
       CALL SEARCH_FIELD(IGRIB,INUM,KPARAM=134)
 END SELECT
@@ -956,7 +955,7 @@ IF (IMODEL==6) THEN ! GRIB2 AROME
   END IF
   IF (INUM < 0) THEN
     ISTARTLEVEL = 1
-    CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=83,KLEV1=ISTARTLEVEL)
+    CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=0,KLEV1=ISTARTLEVEL)
   END IF
   IF (INUM > 0) THEN
     WRITE (ILUOUT0,'(A)') ' | Grib file from French Weather Service - Arome model (forecast)'
@@ -1272,7 +1271,7 @@ IF (NRR >1) THEN
 
     DO JLOOP1=1, INLEVEL
       ILEV1 = JLOOP1-1+ISTARTLEVEL
-      CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=32,KLEV1=ILEV1)
+      CALL SEARCH_FIELD(IGRIB,INUM,KDIS=0,KCAT=1,KNUMBER=201,KLEV1=ILEV1)
       IF (INUM < 0) THEN
         !callabortstop
         WRITE(YMSG,*) 'Specific ratio ',IPAR,' at level ',JLOOP1,' is missing'
diff --git a/src/SURFEX/mode_read_grib.F90 b/src/SURFEX/mode_read_grib.F90
index 2751bff06b17107df33231e213da599818c03176..f92149d19a20c6d00eeb29570069aecf84e819ce 100644
--- a/src/SURFEX/mode_read_grib.F90
+++ b/src/SURFEX/mode_read_grib.F90
@@ -99,7 +99,7 @@ IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:CLEAR_GRIB_INDEX',1,ZHOOK_HANDLE)
 END SUBROUTINE CLEAR_GRIB_INDEX
 !-------------------------------------------------------------------
 !     ####################
-      SUBROUTINE GET_GRIB_MESSAGE(KLUOUT,KLTYPE,KLEV1,KLEV2,KGRIB,KFOUND,HTYPELEVEL,PLEV1,PLEV2)
+      SUBROUTINE GET_GRIB_MESSAGE(KLUOUT,KLTYPE,KLEV1,KLEV2,KGRIB,KFOUND,HTYPELEVEL,PLEV1,PLEV2,HNAME)
 !     ####################
 !    MODIFICATIONS
 !    Gaelle Delautier (via Q.Rodier) 01/2019 : add GRIB 2 
@@ -117,6 +117,7 @@ INTEGER, INTENT(OUT) :: KFOUND
 CHARACTER(LEN=*), INTENT(INOUT), OPTIONAL  :: HTYPELEVEL      ! TypeOfLevel JPMODIF
 REAL, INTENT(INOUT), OPTIONAL  :: PLEV1      ! top level of soil
 REAL, INTENT(INOUT), OPTIONAL  :: PLEV2      ! Bottom level of soil
+CHARACTER(LEN=*), INTENT(INOUT), OPTIONAL  :: HNAME  ! name of the parameter
 !
 
 INTEGER :: ILTYPE
@@ -125,6 +126,7 @@ INTEGER :: ILEV2
 CHARACTER(LEN=50) :: YTYPELEVEL      ! TypeOfLevel JPMODIF
 REAL :: ZLEV1,ZLEV2
 INTEGER(KIND=kindOfInt) :: IRET
+CHARACTER(LEN=50) :: CNAME
 !
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 !
@@ -133,7 +135,7 @@ IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:GET_GRIB_MESSAGE',0,ZHOOK_HANDLE)
 IRET = 0
 KFOUND=0
 !
-DO WHILE (IRET /= GRIB_END_OF_INDEX .AND. KFOUND/=3)
+DO WHILE (IRET /= GRIB_END_OF_INDEX .AND. KFOUND/=4)
   !
   IRET = 0
   KFOUND=0
@@ -151,6 +153,16 @@ DO WHILE (IRET /= GRIB_END_OF_INDEX .AND. KFOUND/=3)
      ENDIF
   ENDIF
   !
+  IF (IRET.EQ.0) THEN
+    !
+    KFOUND = KFOUND + 1
+    !
+    IF (PRESENT(HNAME)) THEN
+     CALL GRIB_GET(KGRIB,'name',CNAME,IRET)
+     CALL TEST_IRET_STR(KLUOUT,CNAME,HNAME,IRET)
+    END IF
+  END IF
+  !
   IF (IRET.EQ.0) THEN
     !
     KFOUND = KFOUND + 1
@@ -182,7 +194,7 @@ DO WHILE (IRET /= GRIB_END_OF_INDEX .AND. KFOUND/=3)
     !
   ENDIF
   !
-  IF (KFOUND.NE.3) THEN
+  IF (KFOUND.NE.4) THEN
     CALL GRIB_RELEASE(KGRIB)
     CALL GRIB_NEW_FROM_INDEX(NIDX,KGRIB,IRET)
   ENDIF
@@ -288,7 +300,7 @@ END SUBROUTINE GET_GRIB_MESSAGE
 !-------------------------------------------------------------------
 !     ####################
       SUBROUTINE READ_GRIB(HGRIB,HINMODEL,KLUOUT,KPARAM,KRET,PFIELD,KLTYPE,KLEV1,KLEV2,KPARAM2, &
-         KLTYPE2,HTYPELEVEL,PLEV1,PLEV2)
+         KLTYPE2,HTYPELEVEL,PLEV1,PLEV2,HNAME)
 !     ####################
 !    MODIFICATIONS
 !    Gaelle Delautier (via Q.Rodier) 01/2019 : add GRIB 2 
@@ -309,6 +321,7 @@ INTEGER,INTENT(INOUT), OPTIONAL :: KLEV2  ! Level parameter 2
 INTEGER, INTENT(INOUT), OPTIONAL :: KPARAM2
 INTEGER,INTENT(INOUT), OPTIONAL :: KLTYPE2 ! Level type
 CHARACTER(LEN=*), INTENT(INOUT), OPTIONAL :: HTYPELEVEL
+CHARACTER(LEN=*), INTENT(INOUT), OPTIONAL :: HNAME
 !
 REAL, INTENT(INOUT), OPTIONAL :: PLEV1,PLEV2
 !
@@ -317,6 +330,7 @@ INTEGER(KIND=kindOfInt) :: IGRIB
 INTEGER :: ISIZE, IFOUND
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 REAL :: ZLEV1,ZLEV2
+CHARACTER(LEN=50) :: CNAME
 !
 IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:READ_GRIB',0,ZHOOK_HANDLE)
 !
@@ -350,7 +364,10 @@ END IF
 
 WRITE (KLUOUT,*) 'READ_GRIB GRIB_NEW_FROM_INDEX ',KPARAM,IGRIB,KRET
 IF (KRET.EQ.0) THEN
-   IF (PRESENT(HTYPELEVEL)) THEN
+   IF (PRESENT(HNAME)) THEN
+      CNAME = HNAME
+      CALL GET_GRIB_MESSAGE(KLUOUT,ILTYPE,ILEV1,ILEV2,IGRIB,IFOUND,HNAME=CNAME)
+   ELSEIF (PRESENT(HTYPELEVEL)) THEN
       CALL GET_GRIB_MESSAGE(KLUOUT,ILTYPE,ILEV1,ILEV2,IGRIB,IFOUND,HTYPELEVEL,ZLEV1,ZLEV2)
    ELSE
       CALL GET_GRIB_MESSAGE(KLUOUT,ILTYPE,ILEV1,ILEV2,IGRIB,IFOUND)
@@ -361,7 +378,7 @@ ENDIF
 WRITE (KLUOUT,*) 'READ_GRIB GRIB_NEW_FROM_INDEX ',KPARAM,IGRIB,KRET,IFOUND
 
 IF (PRESENT(KPARAM2)) THEN
-  IF (IFOUND/=3) THEN
+  IF (IFOUND/=4) THEN
     IF (HINMODEL=='ARPEGE' .AND.NGRIB_VERSION == 2) THEN
       CALL GRIB_INDEX_SELECT(NIDX,'parameterNumber',KPARAM2,KRET)
     ELSE
@@ -379,7 +396,7 @@ IF (PRESENT(KPARAM2)) THEN
   ENDIF
 ENDIF
 !
-IF (IFOUND==3) THEN
+IF (IFOUND==4) THEN
   !
   IF (PRESENT(KLTYPE)) KLTYPE = ILTYPE
   IF (PRESENT(KLEV1))  KLEV1  = ILEV1
@@ -595,7 +612,7 @@ INTEGER                           :: ILEV      ! level definition
 INTEGER                           :: IPARAM    ! number of ParamId or IndicatorOfParameter or ParameterNumber 
 REAL(KIND=JPRB) :: ZHOOK_HANDLE
 CHARACTER(LEN=7)   :: YTYPELEVEL  ! Type of searched level 
-
+CHARACTER(LEN=50) :: CNAME                     ! name of the parameter (for ARPEGE GRIB2 converted with Epygram 1.4.8)
 !-------------------------------------------------------------------
 !* Read surface temperature
 IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:READ_GRIB_T',0,ZHOOK_HANDLE)
@@ -608,13 +625,15 @@ SELECT CASE (HINMODEL)
   CASE ('ARPEGE','ALADIN','MOCAGE')
     ILEV=0
     IF (HINMODEL=='ARPEGE' .AND. NGRIB_VERSION==2) THEN
-      IPARAM=18
+      IPARAM=0
       ILTYPE=1
+      CNAME = 'Temperature'
+      CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,IPARAM,IRET,PT,KPARAM2=IPARAM,KLTYPE=ILTYPE,KLEV1=ILEV,HNAME=CNAME)
     ELSE
       IPARAM=11
       ILTYPE=111
+      CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,IPARAM,IRET,PT,KLTYPE=ILTYPE,KLEV1=ILEV) 
     ENDIF
-    CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,IPARAM,IRET,PT,KLTYPE=ILTYPE,KLEV1=ILEV) 
     IF (IRET /= 0) THEN
       ILTYPE=1
       CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,IPARAM,IRET,PT,KLTYPE=ILTYPE) 
@@ -1655,7 +1674,7 @@ PD(:,2) = 0.20
 ILEV1   = 0
 IF (HINMODEL == 'ARPEGE' .OR. HINMODEL=='MOCAGE') THEN
   IF (HINMODEL=='ARPEGE' .AND. NGRIB_VERSION==2) THEN
-    IPARAM=20
+    IPARAM=193
     ILTYPE=1
     CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,IPARAM,IRET,ZFIELD,KLTYPE=ILTYPE)
   ELSE
@@ -1678,7 +1697,7 @@ PFIELD(:,1) = ZFIELD(:)
 !     ---------------------
 IF (HINMODEL == 'ARPEGE' .OR. HINMODEL=='MOCAGE') THEN
   IF (HINMODEL=='ARPEGE' .AND. NGRIB_VERSION==2) THEN
-    IPARAM=20
+    IPARAM=193
     ILTYPE=106
     CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,IPARAM,IRET,ZFIELD,KLTYPE=ILTYPE)
   ELSE
@@ -2173,7 +2192,7 @@ SELECT CASE(HINMODEL)
     CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,141,IRET,ZFIELD)
   CASE('ARPEGE','ALADIN','MOCAGE','HIRLAM')
     IF (HINMODEL=='ARPEGE' .AND. NGRIB_VERSION==2) THEN
-      CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,11,IRET,ZFIELD)
+      CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,60,IRET,ZFIELD)
     ELSE
       CALL READ_GRIB(HGRIB,HINMODEL,KLUOUT,66,IRET,ZFIELD)
     ENDIF