diff --git a/src/LIB/SURCOUCHE/src/modd_mpif.f90 b/src/LIB/SURCOUCHE/src/modd_mpif.f90
index a36b3748a77cd6dedf33847c195473bbdadac049..0a17fcf5081893ae0ececc02aac023e21cfcac23 100644
--- a/src/LIB/SURCOUCHE/src/modd_mpif.f90
+++ b/src/LIB/SURCOUCHE/src/modd_mpif.f90
@@ -1,19 +1,12 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for CVS information
-!-----------------------------------------------------------------
-! $Source$
-! $Name$ 
-! $Revision$
 !  J.Escobar 5/06/2018 : add cpp key MNH_USE_MPI_STATUSES_IGNORE for use of true MPI_STATUSES_IGNORE
 !                        & bypass bug with ifort+openmpi
-! $Date$
-!-----------------------------------------------------------------
+!  P.Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler)
 !-----------------------------------------------------------------
-
 MODULE MODD_MPIF
 #ifdef USE_MPI
   USE MPI
@@ -23,7 +16,7 @@ MODULE MODD_MPIF
   INCLUDE 'mpif.h'
 #ifdef MNH_USE_MPI_STATUSES_IGNORE
   ! bypass ifort bug with use only MNH_STATUSES_IGNORE => MPI_STATUSES_IGNORE
-  double precision XXXXXX
+  real(kind(0.0d0)) XXXXXX
   equivalence ( MPI_STATUSES_IGNORE , XXXXXX )
 #endif
 #endif
diff --git a/src/MNH/ch_f77.fx90 b/src/MNH/ch_f77.fx90
index 836766326106963c5071eee3386bcc484a933df6..79387b824a2390553faa1a480964e9c3b9f034c0 100644
--- a/src/MNH/ch_f77.fx90
+++ b/src/MNH/ch_f77.fx90
@@ -18,6 +18,8 @@ C**MODIFIED: 19/06/2014 (J.Escobar & M.Leriche) write(kout,...) to OUTPUT_LISTIN
 C                       & correct IN_LUN = 11 => IN_LUN = 78 to avoid fort.11 creation 
 C**MODIFIED: 10/01/2019 (P.Wautelet) use newunit argument to open files
 C                        + bug corrections: some files were not closed
+C**MODIFIED: 10/01/2019 (P.Wautelet) replace double precision declarations by
+C                       real(kind(0.0d0)) (to allow compilation by NAG compiler)
 C!
 C!
 C!
@@ -6732,8 +6734,8 @@ c      c      INCLUDE 'params'
 
 * local variables
 
-      DOUBLE PRECISION rm(kz), ro2(kz)
-      DOUBLE PRECISION b(3), c(3), d(3), e(3)
+      REAL(kind(0.0d0)) :: rm(kz), ro2(kz)
+      REAL(kind(0.0d0)) :: b(3), c(3), d(3), e(3)
       DATA b/ 6.8431D-01, 2.29841D-01,  8.65412D-02/,
      >     c/8.22114D-21, 1.77556D-20,  8.22112D-21/,
      >     d/ 6.0073D-21, 4.28569D-21,  1.28059D-20/,
@@ -7067,9 +7069,9 @@ C-------------------------------------------------------------
 
 	REAL    CHEBEV
 
-	DOUBLE PRECISION  AC(20,17)
-        DOUBLE PRECISION  BC(20,17) ! Chebyshev polynomial coeffs
-	REAL  WAVE_NUM(17)
+        REAL(kind(0.0d0)) ::  AC(20,17)
+        REAL(kind(0.0d0)) ::  BC(20,17) ! Chebyshev polynomial coeffs
+        REAL  WAVE_NUM(17)
 	COMMON /XS_COEFFS/ AC, BC, WAVE_NUM
 
 	INTEGER I
@@ -7096,8 +7098,8 @@ C	polynomial coeffs necessary to calculate O2 effective
 C       cross-sections
 C
 C-------------------------------------------------------------
-	DOUBLE PRECISION  AC(20,17)
-	DOUBLE PRECISION  BC(20,17) ! Chebyshev polynomial coeffs
+	REAL(kind(0.0d0)) ::  AC(20,17)
+	REAL(kind(0.0d0)) ::  BC(20,17) ! Chebyshev polynomial coeffs
 	REAL  WAVE_NUM(17)
 	COMMON /XS_COEFFS/ AC, BC, WAVE_NUM
 	
@@ -7145,7 +7147,7 @@ C-------------------------------------------------------------
       
 	INTEGER M
         REAL  CHEBEV,A,B,X
-	DOUBLE PRECISION  C(M)
+	REAL(kind(0.0d0)) ::  C(M)
         INTEGER J
         REAL D,DD,SV,Y,Y2
 
@@ -15460,12 +15462,12 @@ c     .. Local Scalars ..
 
       INTEGER   ITER, K, LIM, MAXIT, NN, NP1
       REAL      CONA, PI, T
-      DOUBLE PRECISION EN, NNP1, ONE, P, P2PRI, PM1, PM2, PPR, PROD,
-     &                 TMP, TOL, TWO, X, XI
+      REAL(kind(0.0d0)) :: EN, NNP1, ONE, P, P2PRI, PM1, PM2, PPR,
+     &                 PROD, TMP, TOL, TWO, X, XI
 c     ..
 c     .. External Functions ..
 
-      DOUBLE PRECISION D1MACH
+      REAL(kind(0.0d0)) :: D1MACH
       EXTERNAL  D1MACH
 c     ..
 c     .. External Subroutines ..
@@ -16223,7 +16225,7 @@ c     .. Array Arguments ..
      &          CC( MXCMU, MXCMU ), CMU( MXCMU ), CWT( MXCMU ),
      &          EVAL( MI ), EVECC( MXCMU, MXCMU ), GC( MXCMU, MXCMU ),
      &          GL( 0:MXCMU ), KK( MXCMU ), YLMC( 0:MXCMU, MXCMU )
-      DOUBLE PRECISION AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ),
+      REAL(kind(0.0d0)) :: AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ),
      &                 WKD( MXCMU )
 c     ..
 c     .. Local Scalars ..
@@ -16964,7 +16966,7 @@ c     .. Array Arguments ..
      &     YLM0( 0:MXCMU ), YLMC( 0:MXCMU, MXCMU ),
      &     WK( MXCMU ), ZJ( MXCMU ), ZZ( MXCMU )
 
-      DOUBLE PRECISION AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ),
+      REAL(kind(0.0d0)) :: AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ),
      &                 WKD( MXCMU )
 
 *bm   Variables for instability fix
@@ -19078,14 +19080,14 @@ C     ##############################
 *-----------------------------------------------------------------------------*
 
       EXTERNAL t665d
-      DOUBLE PRECISION d1mach
+      REAL(kind(0.0d0)) :: d1mach
       INTEGER i
    
       LOGICAL doinit
       DATA doinit/.TRUE./
       SAVE doinit
 
-      DOUBLE PRECISION dmach(4) 
+      REAL(kind(0.0d0)) :: dmach(4) 
       SAVE dmach
 
       IF (( i .GE. 1 ) .AND. ( i .LE. 4 )) THEN
@@ -19117,12 +19119,12 @@ C-----------------------------------------------------------------------
 C This subroutine is a double precision version of subroutine T665R.
 C See code of T665R for detailed comments and explanation
 C-----------------------------------------------------------------------
-      DOUBLE PRECISION DMACH(4)
+      REAL(kind(0.0d0)) :: DMACH(4)
       INTEGER I,IBETA,IEXP,IRND,IT,ITEMP,IZ,J,K,MACHEP,MAXEXP,
      1        MINEXP,MX,NEGEP,NGRD,NXRES
 CS    REAL A,B,BETA,BETAIN,BETAH,CONV,EPS,EPSNEG,ONE,T,TEMP,TEMPA,
 CS   1     TEMP1,TWO,XMAX,XMIN,Y,Z,ZERO
-      DOUBLE PRECISION A,B,BETA,BETAIN,BETAH,CONV,EPS,EPSNEG,ONE,
+      REAL(kind(0.0d0)) :: A,B,BETA,BETAIN,BETAH,CONV,EPS,EPSNEG,ONE,
      1                 T,TEMP,TEMPA,TEMP1,TWO,XMAX,XMIN,Y,Z,ZERO
 C-----------------------------------------------------------------------
 CS    CONV(I) = REAL(I)
@@ -41958,7 +41960,8 @@ c      INCLUDE 'params'
 
 * local 
 
-      DOUBLE PRECISION zenrad, rpsinz, rj, rjp1, dsj, dhj, ga, gb, sm
+      REAL(kind(0.0d0)) :: zenrad, rpsinz, rj, rjp1, dsj, dhj,
+     &                     ga, gb, sm
       INTEGER i, j, k
       INTEGER id
 
diff --git a/src/MNH/lima_functions.f90 b/src/MNH/lima_functions.f90
index 8a7f468932ea5de117b9b80c56d6c26793bc2776..30fd902b4ef4169f78e2e5a60dca84911d1b7c71 100644
--- a/src/MNH/lima_functions.f90
+++ b/src/MNH/lima_functions.f90
@@ -1,3 +1,12 @@
+!MNH_LIC Copyright 2016-2019 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.
+!-----------------------------------------------------------------
+! Modifications:
+!  P.Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler)
+!
+!-----------------------------------------------------------------
 !#################################
         MODULE MODI_LIMA_FUNCTIONS
 !#################################
@@ -215,11 +224,11 @@ SUBROUTINE gaulag(x,w,n,alf)
 !###########################
   INTEGER n,MAXIT
   REAL alf,w(n),x(n)
-  DOUBLE PRECISION EPS
+  REAL(kind=8) :: EPS
   PARAMETER (EPS=3.D-14,MAXIT=10)
   INTEGER i,its,j
   REAL ai
-  DOUBLE PRECISION p1,p2,p3,pp,z,z1
+  REAL(kind=8) :: p1,p2,p3,pp,z,z1
 !
   REAL SUMW
 !
@@ -270,10 +279,10 @@ SUBROUTINE gauher(x,w,n)
 !##########################################
   INTEGER n,MAXIT
   REAL w(n),x(n)
-  DOUBLE PRECISION EPS,PIM4
+  REAL(kind=8) :: EPS,PIM4
   PARAMETER (EPS=3.D-14,PIM4=.7511255444649425D0,MAXIT=10)
   INTEGER i,its,j,m
-  DOUBLE PRECISION p1,p2,p3,pp,z,z1
+  REAL(kind=8) :: p1,p2,p3,pp,z,z1
 !
   REAL SUMW
 !
diff --git a/src/MNH/mode_tmat.f90 b/src/MNH/mode_tmat.f90
index e46fedfbb480f8b6c25992abcb1d9a0adcda8bec..f0c98a7996ea3d97e45656b168eb4664307f35f5 100644
--- a/src/MNH/mode_tmat.f90
+++ b/src/MNH/mode_tmat.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2000-2019 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$ $Date$
-!-----------------------------------------------------------------
 !     algorithme initial créé par Michael Mishchenko (2000)
 !
 !     algorithme modifié par Corinne Burlaud (2000) puis Olivier Brunau (2002)
@@ -19,6 +15,7 @@
 !
 !     Modif par Olivier Caumont (04/2008) pour interfaçage avec diagnostic 
 !     radar de Méso-NH.
+!     P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler)
 !
 !****************************************************************************
 
@@ -324,7 +321,7 @@
 !!          RT21(NPN6,NPN4,NPN4),RT22(NPN6,NPN4,NPN4),&
 ! !         IT11(NPN6,NPN4,NPN4),IT12(NPN6,NPN4,NPN4),&
 !!          IT21(NPN6,NPN4,NPN4),IT22(NPN6,NPN4,NPN4)
-      DOUBLE COMPLEX S11,S12,S21,S22
+      COMPLEX*16 S11,S12,S21,S22
       COMPLEX*16 S11u,S12u,S21u,S22u
 
       REAL*8 S11carre,S22carre