diff --git a/src/MNH/boundaries.f90 b/src/MNH/boundaries.f90
index 4aa484090f8d0b61f4d566943739faec89a2be31..1b73df6c2d508cc3eb67c3af1c1ea3f1314660b8 100644
--- a/src/MNH/boundaries.f90
+++ b/src/MNH/boundaries.f90
@@ -199,6 +199,7 @@ USE MODD_PARAMETERS
 USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, LBOUND, LWARM, LCOLD
 USE MODD_PARAM_n,    ONLY : CELEC,CCLOUD
 USE MODD_PASPOL,      ONLY : LPASPOL
+USE MODD_PRECISION,   ONLY: MNHREAL32
 USE MODD_REF_n
 USE MODD_SALT,        ONLY : LSALT
 
@@ -424,17 +425,17 @@ END IF
 !
 !  Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result
 !
-ZLBXVT(:,:,:)  = real(ZLBXVT(:,:,:),kind=4)
-ZLBXWT(:,:,:)  = real(ZLBXWT(:,:,:),kind=4)
-ZLBXTHT(:,:,:) = real(ZLBXTHT(:,:,:),kind=4)
+ZLBXVT(:,:,:)  = real(ZLBXVT(:,:,:),kind=MNHREAL32)
+ZLBXWT(:,:,:)  = real(ZLBXWT(:,:,:),kind=MNHREAL32)
+ZLBXTHT(:,:,:) = real(ZLBXTHT(:,:,:),kind=MNHREAL32)
 IF ( SIZE(PTKET,1) /= 0 ) THEN
-   ZLBXTKET(:,:,:) = real(ZLBXTKET(:,:,:),kind=4)
+   ZLBXTKET(:,:,:) = real(ZLBXTKET(:,:,:),kind=MNHREAL32)
 END IF
 IF ( KRR > 0) THEN
-   ZLBXRT(:,:,:,:) = real(ZLBXRT(:,:,:,:),kind=4)
+   ZLBXRT(:,:,:,:) = real(ZLBXRT(:,:,:,:),kind=MNHREAL32)
 END IF
 IF ( KSV > 0) THEN
-   ZLBXSVT(:,:,:,:) = real(ZLBXSVT(:,:,:,:),kind=4)
+   ZLBXSVT(:,:,:,:) = real(ZLBXSVT(:,:,:,:),kind=MNHREAL32)
 END IF
 !     ============================================================ 
 !
@@ -475,17 +476,17 @@ END IF
 !
 !  Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result
 !
-ZLBYUT(:,:,:)  = real(ZLBYUT(:,:,:),kind=4)
-ZLBYWT(:,:,:)  = real(ZLBYWT(:,:,:),kind=4)
-ZLBYTHT(:,:,:) = real(ZLBYTHT(:,:,:),kind=4)
+ZLBYUT(:,:,:)  = real(ZLBYUT(:,:,:),kind=MNHREAL32)
+ZLBYWT(:,:,:)  = real(ZLBYWT(:,:,:),kind=MNHREAL32)
+ZLBYTHT(:,:,:) = real(ZLBYTHT(:,:,:),kind=MNHREAL32)
 IF ( SIZE(PTKET,1) /= 0 ) THEN
-   ZLBYTKET(:,:,:) = real(ZLBYTKET(:,:,:),kind=4)
+   ZLBYTKET(:,:,:) = real(ZLBYTKET(:,:,:),kind=MNHREAL32)
 END IF
 IF ( KRR > 0) THEN
-   ZLBYRT(:,:,:,:) = real(ZLBYRT(:,:,:,:),kind=4) 
+   ZLBYRT(:,:,:,:) = real(ZLBYRT(:,:,:,:),kind=MNHREAL32)
 END IF
 IF ( KSV > 0) THEN
-   ZLBYSVT(:,:,:,:) = real(ZLBYSVT(:,:,:,:),kind=4)
+   ZLBYSVT(:,:,:,:) = real(ZLBYSVT(:,:,:,:),kind=MNHREAL32)
 END IF
 !     ============================================================ 
 !
diff --git a/src/MNH/num_diff.f90 b/src/MNH/num_diff.f90
index 5e3f8d260e1c8ef48c5fa8372516fba357201d48..688304a1a2bce2db56e2bc8aadbe9774692ae689 100644
--- a/src/MNH/num_diff.f90
+++ b/src/MNH/num_diff.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2021 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.
@@ -227,6 +227,7 @@ use modd_budget,     only: lbudget_u,  lbudget_v,  lbudget_w,  lbudget_th, lbudg
                            tbudgets
 USE MODD_CONF
 USE MODD_PARAMETERS
+use modd_precision,  only: MNHREAL32
 
 use mode_budget,     only: Budget_store_init, Budget_store_end
 USE MODE_ll
@@ -1120,18 +1121,18 @@ CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
                 TPHALO2%WEST(:,:)   +   PFIELDM(IW+1,:,:)                &
           -4.*( PFIELDM(IW-2,:,:)   +   PFIELDM(IW,:,:)     )            &
           +6.*  PFIELDM(IW-1,:,:)                                        &
-            -   real(TPHALO2LS%WEST(:,:),kind=4) -  real(PLSFIELD(IW+1,:,:),kind=4)               &
-          +4.*( real(PLSFIELD(IW-2,:,:),kind=4)  +  real(PLSFIELD(IW,:,:),kind=4)   )             &
-          -6.*  real(PLSFIELD(IW-1,:,:),kind=4)  )
+            -   real(TPHALO2LS%WEST(:,:),kind=MNHREAL32) -  real(PLSFIELD(IW+1,:,:),kind=MNHREAL32)   &
+          +4.*( real(PLSFIELD(IW-2,:,:),kind=MNHREAL32)  +  real(PLSFIELD(IW,:,:),kind=MNHREAL32)   ) &
+          -6.*  real(PLSFIELD(IW-1,:,:),kind=MNHREAL32)  )
 !
       PRFIELDS(IE+1,:,:) = PRFIELDS(IE+1,:,:) - PRHODJ(IE+1,:,:) *       &
       PDK4*(                                                             &
                 PFIELDM(IE-1,:,:)   +  TPHALO2%EAST(:,:)                 &
           -4.*( PFIELDM(IE,:,:)     +  PFIELDM(IE+2,:,:)   )             &
           +6.*  PFIELDM(IE+1,:,:)                                        &
-             -  real(PLSFIELD(IE-1,:,:),kind=4)  -  real(TPHALO2LS%EAST(:,:),kind=4)               &
-          +4.*( real(PLSFIELD(IE,:,:),kind=4)    +  real(PLSFIELD(IE+2,:,:),kind=4)  )             &
-          -6.*  real(PLSFIELD(IE+1,:,:),kind=4)  )
+             -  real(PLSFIELD(IE-1,:,:),kind=MNHREAL32)  -  real(TPHALO2LS%EAST(:,:),kind=MNHREAL32)   &
+          +4.*( real(PLSFIELD(IE,:,:),kind=MNHREAL32)    +  real(PLSFIELD(IE+2,:,:),kind=MNHREAL32)  ) &
+          -6.*  real(PLSFIELD(IE+1,:,:),kind=MNHREAL32)  )
 !
 !!$    ENDIF
 !
@@ -1142,10 +1143,10 @@ CASE ('CYCL')          ! In that case one must have HLBCX(1) == HLBCX(2)
          PDK4*(                                                           &
                   PFIELDM(IW-2:IE-2,:,:)  + PFIELDM(IW+2:IE+2,:,:)        &
             -4.*( PFIELDM(IW-1:IE-1,:,:)  + PFIELDM(IW+1:IE+1,:,:)   )    &
-            +6.*  PFIELDM(IW:IE,:,:)                                      &                                                                         
-              -   real(PLSFIELD(IW-2:IE-2,:,:),kind=4) - real(PLSFIELD(IW+2:IE+2,:,:),kind=4)       &
-            +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=4) + real(PLSFIELD(IW+1:IE+1,:,:),kind=4)  )    &
-            -6.*  real(PLSFIELD(IW:IE,:,:),kind=4)     )
+            +6.*  PFIELDM(IW:IE,:,:)                                      &
+              -   real(PLSFIELD(IW-2:IE-2,:,:),kind=MNHREAL32) - real(PLSFIELD(IW+2:IE+2,:,:),kind=MNHREAL32)    &
+            +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=MNHREAL32) + real(PLSFIELD(IW+1:IE+1,:,:),kind=MNHREAL32)  ) &
+            -6.*  real(PLSFIELD(IW:IE,:,:),kind=MNHREAL32)     )
 !
   ELSE
 !
@@ -1215,7 +1216,8 @@ CASE ('OPEN','WALL','NEST')
       PRFIELDS(IW-1,:,:) = PRFIELDS(IW-1,:,:) + PRHODJ(IW-1,:,:) *              &
         PDK2*(                                                                  &
                  PFIELDM(IW-2,:,:)  -2.*PFIELDM(IW-1,:,:)  + PFIELDM(IW,:,:)    &
-                -real(PLSFIELD(IW-2,:,:),kind=4) +2.*real(PLSFIELD(IW-1,:,:),kind=4) - real(PLSFIELD(IW,:,:),kind=4)   )
+               - real(PLSFIELD(IW-2,:,:),kind=MNHREAL32) +2.*real(PLSFIELD(IW-1,:,:),kind=MNHREAL32) &
+               - real(PLSFIELD(IW,:,:),kind=MNHREAL32)   )
 !
 !!$    ELSEIF (NHALO == 1) THEN
     ELSE
@@ -1225,9 +1227,9 @@ CASE ('OPEN','WALL','NEST')
                  TPHALO2%WEST(:,:)   +  PFIELDM(IW+1,:,:)                 &
           -4.*(  PFIELDM(IW-2,:,:)   +  PFIELDM(IW,:,:)     )             &
           +6.*   PFIELDM(IW-1,:,:)                                        &
-            -    real(TPHALO2LS%WEST(:,:),kind=4) -  real(PLSFIELD(IW+1,:,:),kind=4)                &
-          +4.*(  real(PLSFIELD(IW-2,:,:),kind=4)  +  real(PLSFIELD(IW,:,:),kind=4)    )             &
-          -6.*   real(PLSFIELD(IW-1,:,:),kind=4)  ) 
+            -    real(TPHALO2LS%WEST(:,:),kind=MNHREAL32) -  real(PLSFIELD(IW+1,:,:),kind=MNHREAL32)    &
+          +4.*(  real(PLSFIELD(IW-2,:,:),kind=MNHREAL32)  +  real(PLSFIELD(IW,:,:),kind=MNHREAL32)    ) &
+          -6.*   real(PLSFIELD(IW-1,:,:),kind=MNHREAL32)  )
 !     
     ENDIF
 !
@@ -1236,7 +1238,8 @@ CASE ('OPEN','WALL','NEST')
       PRFIELDS(IE+1,:,:) = PRFIELDS(IE+1,:,:) + PRHODJ(IE+1,:,:) *            &
         PDK2*(                                                                & 
                 PFIELDM(IE,:,:)  -2.*PFIELDM(IE+1,:,:)  + PFIELDM(IE+2,:,:)   &
-              - real(PLSFIELD(IE,:,:),kind=4) +2.*real(PLSFIELD(IE+1,:,:),kind=4) - real(PLSFIELD(IE+2,:,:),kind=4)  )
+              - real(PLSFIELD(IE,:,:),kind=MNHREAL32) +2.*real(PLSFIELD(IE+1,:,:),kind=MNHREAL32) &
+              - real(PLSFIELD(IE+2,:,:),kind=MNHREAL32)  )
 !
 !!$    ELSEIF (NHALO == 1) THEN
     ELSE
@@ -1246,9 +1249,9 @@ CASE ('OPEN','WALL','NEST')
                  PFIELDM(IE-1,:,:)  +   TPHALO2%EAST(:,:)               &
           -4.*(  PFIELDM(IE  ,:,:)  +   PFIELDM(IE+2,:,:)    )          &
           +6.*   PFIELDM(IE+1,:,:)                                      &
-            -    real(PLSFIELD(IE-1,:,:),kind=4) -   real(TPHALO2LS%EAST(:,:),kind=4)             &
-          +4.*(  real(PLSFIELD(IE  ,:,:),kind=4) +   real(PLSFIELD(IE+2,:,:),kind=4)  )           &
-          -6.*   real(PLSFIELD(IE+1,:,:),kind=4) )
+            -    real(PLSFIELD(IE-1,:,:),kind=MNHREAL32) -   real(TPHALO2LS%EAST(:,:),kind=MNHREAL32)   &
+          +4.*(  real(PLSFIELD(IE  ,:,:),kind=MNHREAL32) +   real(PLSFIELD(IE+2,:,:),kind=MNHREAL32)  ) &
+          -6.*   real(PLSFIELD(IE+1,:,:),kind=MNHREAL32) )
 !
     ENDIF
 
@@ -1262,9 +1265,9 @@ CASE ('OPEN','WALL','NEST')
                   PFIELDM(IW-2:IE-2,:,:)  + PFIELDM(IW+2:IE+2,:,:)        &
             -4.*( PFIELDM(IW-1:IE-1,:,:)  + PFIELDM(IW+1:IE+1,:,:)   )    &
             +6.*  PFIELDM(IW:IE,:,:)                                      & 
-              -   real(PLSFIELD(IW-2:IE-2,:,:),kind=4) - real(PLSFIELD(IW+2:IE+2,:,:),kind=4)       &
-            +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=4) + real(PLSFIELD(IW+1:IE+1,:,:),kind=4)  )    &
-            -6.*  real(PLSFIELD(IW:IE,:,:),kind=4)     ) 
+              -   real(PLSFIELD(IW-2:IE-2,:,:),kind=MNHREAL32) - real(PLSFIELD(IW+2:IE+2,:,:),kind=MNHREAL32)    &
+            +4.*( real(PLSFIELD(IW-1:IE-1,:,:),kind=MNHREAL32) + real(PLSFIELD(IW+1:IE+1,:,:),kind=MNHREAL32)  ) &
+            -6.*  real(PLSFIELD(IW:IE,:,:),kind=MNHREAL32)     )
 !
   ELSE
 !
@@ -1353,18 +1356,18 @@ IF ( .NOT. L2D ) THEN
                   TPHALO2%SOUTH(:,:)   +  PFIELDM(:,IS+1,:)               &
             -4.*( PFIELDM(:,IS-2,:)    +  PFIELDM(:,IS,:)    )            &
             +6.*  PFIELDM(:,IS-1,:)                                       &
-              -   real(TPHALO2LS%SOUTH(:,:),kind=4) -  real(PLSFIELD(:,IS+1,:),kind=4)              &
-            +4.*( real(PLSFIELD(:,IS-2,:),kind=4)   +  real(PLSFIELD(:,IS,:),kind=4)   )            &
-            -6.*  real(PLSFIELD(:,IS-1,:),kind=4)   )
+              -   real(TPHALO2LS%SOUTH(:,:),kind=MNHREAL32) -  real(PLSFIELD(:,IS+1,:),kind=MNHREAL32)   &
+            +4.*( real(PLSFIELD(:,IS-2,:),kind=MNHREAL32)   +  real(PLSFIELD(:,IS,:),kind=MNHREAL32)   ) &
+            -6.*  real(PLSFIELD(:,IS-1,:),kind=MNHREAL32)   )
 !
         PRFIELDS(:,IN+1,:) = PRFIELDS(:,IN+1,:) - PRHODJ(:,IN+1,:) *      &
         PDK4*(                                                            &
                   PFIELDM(:,IN-1,:)    +  TPHALO2%NORTH(:,:)              &
             -4.*( PFIELDM(:,IN,:)      +  PFIELDM(:,IN+2,:)  )            &
             +6.*  PFIELDM(:,IN+1,:)                                       &
-               -  real(PLSFIELD(:,IN-1,:),kind=4)   -  real(TPHALO2LS%NORTH(:,:),kind=4)            &
-            +4.*( real(PLSFIELD(:,IN,:),kind=4)     +  real(PLSFIELD(:,IN+2,:),kind=4) )            &
-            -6.*  real(PLSFIELD(:,IN+1,:),kind=4)   )
+               -  real(PLSFIELD(:,IN-1,:),kind=MNHREAL32)   -  real(TPHALO2LS%NORTH(:,:),kind=MNHREAL32) &
+            +4.*( real(PLSFIELD(:,IN,:),kind=MNHREAL32)     +  real(PLSFIELD(:,IN+2,:),kind=MNHREAL32) ) &
+            -6.*  real(PLSFIELD(:,IN+1,:),kind=MNHREAL32)   )
 !
 !!$      ENDIF
 !
@@ -1376,9 +1379,9 @@ IF ( .NOT. L2D ) THEN
                      PFIELDM(:,IS-2:IN-2,:)  +  PFIELDM(:,IS+2:IN+2,:)     &
              -4.*(   PFIELDM(:,IS-1:IN-1,:)  +  PFIELDM(:,IS+1:IN+1,:)  )  &
              +6.*    PFIELDM(:,IS:IN,:)                                    &
-                   - real(PLSFIELD(:,IS-2:IN-2,:),kind=4) -  real(PLSFIELD(:,IS+2:IN+2,:),kind=4)    &
-             +4.*(   real(PLSFIELD(:,IS-1:IN-1,:),kind=4) +  real(PLSFIELD(:,IS+1:IN+1,:),kind=4) )  &
-             -6.*    real(PLSFIELD(:,IS:IN,:),kind=4)     )
+                   - real(PLSFIELD(:,IS-2:IN-2,:),kind=MNHREAL32) -  real(PLSFIELD(:,IS+2:IN+2,:),kind=MNHREAL32)    &
+             +4.*(   real(PLSFIELD(:,IS-1:IN-1,:),kind=MNHREAL32) +  real(PLSFIELD(:,IS+1:IN+1,:),kind=MNHREAL32) )  &
+             -6.*    real(PLSFIELD(:,IS:IN,:),kind=MNHREAL32)     )
 !
     ELSE
 !
@@ -1448,8 +1451,9 @@ IF ( .NOT. L2D ) THEN
 !
         PRFIELDS(:,IS-1,:) = PRFIELDS(:,IS-1,:) + PRHODJ(:,IS-1,:) *            &
           PDK2*(                                                                &
-                 PFIELDM(:,IS-2,:)  -2.*PFIELDM(:,IS-1,:)  + PFIELDM(:,IS,:)    &
-                -real(PLSFIELD(:,IS-2,:),kind=4) +2.*real(PLSFIELD(:,IS-1,:),kind=4) - real(PLSFIELD(:,IS,:),kind=4)   )
+                  PFIELDM(:,IS-2,:)  -2.*PFIELDM(:,IS-1,:)  + PFIELDM(:,IS,:)   &
+                - real(PLSFIELD(:,IS-2,:),kind=MNHREAL32) +2.*real(PLSFIELD(:,IS-1,:),kind=MNHREAL32) &
+                - real(PLSFIELD(:,IS,:),kind=MNHREAL32)   )
 !
 !!$      ELSEIF (NHALO == 1) THEN
       ELSE
@@ -1459,9 +1463,9 @@ IF ( .NOT. L2D ) THEN
                   TPHALO2%SOUTH(:,:)   +  PFIELDM(:,IS+1,:)                     &
             -4.*( PFIELDM(:,IS-2,:)    +  PFIELDM(:,IS,:)    )                  &
             +6.*  PFIELDM(:,IS-1,:)                                             &
-              -   real(TPHALO2LS%SOUTH(:,:),kind=4) -  real(PLSFIELD(:,IS+1,:),kind=4)                    &
-            +4.*( real(PLSFIELD(:,IS-2,:),kind=4)   +  real(PLSFIELD(:,IS,:),kind=4)   )                  &
-            -6.*  real(PLSFIELD(:,IS-1,:),kind=4)   )
+              -   real(TPHALO2LS%SOUTH(:,:),kind=MNHREAL32) -  real(PLSFIELD(:,IS+1,:),kind=MNHREAL32)   &
+            +4.*( real(PLSFIELD(:,IS-2,:),kind=MNHREAL32)   +  real(PLSFIELD(:,IS,:),kind=MNHREAL32)   ) &
+            -6.*  real(PLSFIELD(:,IS-1,:),kind=MNHREAL32)   )
 !
       ENDIF
 !
@@ -1470,7 +1474,8 @@ IF ( .NOT. L2D ) THEN
         PRFIELDS(:,IN+1,:) = PRFIELDS(:,IN+1,:) + PRHODJ(:,IN+1,:) *             &
           PDK2*(                                                                 &
                    PFIELDM(:,IN,:)  -2.*PFIELDM(:,IN+1,:)   + PFIELDM(:,IN+2,:)  &
-                  -real(PLSFIELD(:,IN,:),kind=4) +2.*real(PLSFIELD(:,IN+1,:),kind=4)  - real(PLSFIELD(:,IN+2,:),kind=4) )
+                 - real(PLSFIELD(:,IN,:),kind=MNHREAL32) +2.*real(PLSFIELD(:,IN+1,:),kind=MNHREAL32) &
+                 - real(PLSFIELD(:,IN+2,:),kind=MNHREAL32) )
 !
 !!$      ELSEIF (NHALO == 1) THEN
       ELSE
@@ -1480,9 +1485,9 @@ IF ( .NOT. L2D ) THEN
                   PFIELDM(:,IN-1,:)    +  TPHALO2%NORTH(:,:)                 &
           -4.*(   PFIELDM(:,IN,:)      +  PFIELDM(:,IN+2,:)   )              &
           +6.*    PFIELDM(:,IN+1,:)                                          &
-                - real(PLSFIELD(:,IN-1,:),kind=4)   - real(TPHALO2LS%NORTH(:,:),kind=4)                &
-          +4.*(   real(PLSFIELD(:,IN,:),kind=4)     + real(PLSFIELD(:,IN+2,:),kind=4)   )              &
-          -6.*    real(PLSFIELD(:,IN+1,:),kind=4)   )
+                - real(PLSFIELD(:,IN-1,:),kind=MNHREAL32)   - real(TPHALO2LS%NORTH(:,:),kind=MNHREAL32)   &
+          +4.*(   real(PLSFIELD(:,IN,:),kind=MNHREAL32)     + real(PLSFIELD(:,IN+2,:),kind=MNHREAL32)   ) &
+          -6.*    real(PLSFIELD(:,IN+1,:),kind=MNHREAL32)   )
 !
       ENDIF
 !
@@ -1496,9 +1501,9 @@ IF ( .NOT. L2D ) THEN
                      PFIELDM(:,IS-2:IN-2,:)  +  PFIELDM(:,IS+2:IN+2,:)     &
              -4.*(   PFIELDM(:,IS-1:IN-1,:)  +  PFIELDM(:,IS+1:IN+1,:)  )  &
              +6.*    PFIELDM(:,IS:IN,:)                                    &
-                   - real(PLSFIELD(:,IS-2:IN-2,:),kind=4) -  real(PLSFIELD(:,IS+2:IN+2,:),kind=4)    &
-             +4.*(   real(PLSFIELD(:,IS-1:IN-1,:),kind=4) +  real(PLSFIELD(:,IS+1:IN+1,:),kind=4) )  &
-             -6.*    real(PLSFIELD(:,IS:IN,:),kind=4)   )
+                   - real(PLSFIELD(:,IS-2:IN-2,:),kind=MNHREAL32) -  real(PLSFIELD(:,IS+2:IN+2,:),kind=MNHREAL32)   &
+             +4.*(   real(PLSFIELD(:,IS-1:IN-1,:),kind=MNHREAL32) +  real(PLSFIELD(:,IS+1:IN+1,:),kind=MNHREAL32) ) &
+             -6.*    real(PLSFIELD(:,IS:IN,:),kind=MNHREAL32)   )
       
 !
     ELSE
diff --git a/src/MNH/rad_bound.f90 b/src/MNH/rad_bound.f90
index e023abde41ae9d25c65f65f9e458463cbf2831e8..22c423583eabe9d1a038f11cd51ef3fefd047ec0 100644
--- a/src/MNH/rad_bound.f90
+++ b/src/MNH/rad_bound.f90
@@ -159,9 +159,10 @@ END MODULE MODI_RAD_BOUND
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_CONF         
+USE MODD_CONF
 USE MODD_CTURB
 USE MODD_PARAMETERS
+USE MODD_PRECISION,   ONLY: MNHREAL32
 USE MODD_RECYCL_PARAM_n, ONLY: LRECYCL, XRCOEFF
 !
 USE MODE_ll
@@ -321,9 +322,9 @@ SELECT CASE ( HLBCX(1) )
 !
 !  Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result
 !
-   ZLBEU = real(ZLBEU,kind=4)
-   ZLBGU = real(ZLBGU,kind=4)
-   ZLBXU = real(ZLBXU,kind=4)
+   ZLBEU = real(ZLBEU,kind=MNHREAL32)
+   ZLBGU = real(ZLBGU,kind=MNHREAL32)
+   ZLBXU = real(ZLBXU,kind=MNHREAL32)
 !   ============================================================  
       PRUS (IIB,:,:) =(PRHODJ(IIB-1,:,:) + PRHODJ(IIB,:,:)) * 0.5 *          &
                        ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 )  *               &
@@ -406,9 +407,9 @@ SELECT CASE ( HLBCX(2) )
 !
 !  Reproductibility for RSTART -> truncate ZLB to real(knd=4)
 !
-   ZLBEU = real(ZLBEU,kind=4)
-   ZLBGU = real(ZLBGU,kind=4)
-   ZLBXU = real(ZLBXU,kind=4)
+   ZLBEU = real(ZLBEU,kind=MNHREAL32)
+   ZLBGU = real(ZLBGU,kind=MNHREAL32)
+   ZLBXU = real(ZLBXU,kind=MNHREAL32)
 !   ============================================================  
       PRUS (IIE+1,:,:) =(PRHODJ(IIE+1,:,:) + PRHODJ(IIE,:,:)) * 0.5 *           &
                        ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 )  *                  &
@@ -490,9 +491,9 @@ SELECT CASE ( HLBCY(1) )
 !
 !  Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result
 !
-   ZLBEV = real(ZLBEV,kind=4)
-   ZLBGV = real(ZLBGV,kind=4)
-   ZLBYV = real(ZLBYV,kind=4)
+   ZLBEV = real(ZLBEV,kind=MNHREAL32)
+   ZLBGV = real(ZLBGV,kind=MNHREAL32)
+   ZLBYV = real(ZLBYV,kind=MNHREAL32)
 !   ============================================================      
       PRVS (:,IJB,:) =(PRHODJ(:,IJB-1,:) + PRHODJ(:,IJB,:)) * 0.5 *        &
                        ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 )  *             &
@@ -575,9 +576,9 @@ SELECT CASE ( HLBCY(2) )
 !
 !  Reproductibility for RSTART -> truncate ZLB to real(knd=4) to have reproductible result
 !
-   ZLBEV = real(ZLBEV,kind=4)
-   ZLBGV = real(ZLBGV,kind=4)
-   ZLBYV = real(ZLBYV,kind=4)
+   ZLBEV = real(ZLBEV,kind=MNHREAL32)
+   ZLBGV = real(ZLBGV,kind=MNHREAL32)
+   ZLBYV = real(ZLBYV,kind=MNHREAL32)
 !   ============================================================    
       PRVS (:,IJE+1,:) =(PRHODJ(:,IJE+1,:) + PRHODJ(:,IJE,:)) * 0.5 *         &
                        ZINVTSTEP / (1.+ ZKTSTEP * ZALPHA2 )  *                &
diff --git a/src/MNH/relaxation.f90 b/src/MNH/relaxation.f90
index 0af96bf758a83ffd12ba107a7128a2c4a7a6fec1..69e130288298efa89da7afaccb9fe70fd88fb11d 100644
--- a/src/MNH/relaxation.f90
+++ b/src/MNH/relaxation.f90
@@ -273,6 +273,7 @@ USE MODD_CONF,       only: cconf
 USE MODD_ELEC_DESCR, ONLY: LRELAX2FW_ION
 USE MODD_NSV,        ONLY: NSV_ELECBEG, NSV_ELECEND
 USE MODD_PARAMETERS, only: jphext, jpvext
+USE MODD_PRECISION,  ONLY: MNHREAL32
 
 use mode_budget,     only: Budget_store_init, Budget_store_end
 USE MODE_EXTRAPOL,   only: Extrapol
@@ -517,16 +518,16 @@ IF(OVE_RELAX) THEN
 !
   DO JK = KALBOT, IKE+1
 !
-    PRUS(:,:,JK)  = PRUS(:,:,JK)  - ZKV(JK)  *(PUT(:,:,JK)  -real(PLSUM(:,:,JK),kind=4) )&
+    PRUS(:,:,JK)  = PRUS(:,:,JK)  - ZKV(JK)  *(PUT(:,:,JK)  -real(PLSUM(:,:,JK),kind=MNHREAL32) )&
                     * ZRHODJU(:,:,JK)
 !
-    PRVS(:,:,JK)  = PRVS(:,:,JK)  - ZKV(JK)  *(PVT(:,:,JK)  -real(PLSVM(:,:,JK),kind=4) )&
+    PRVS(:,:,JK)  = PRVS(:,:,JK)  - ZKV(JK)  *(PVT(:,:,JK)  -real(PLSVM(:,:,JK),kind=MNHREAL32) )&
                     * ZRHODJV(:,:,JK)
 !
-    PRWS(:,:,JK)  = PRWS(:,:,JK)  - ZKVW(JK) *(PWT(:,:,JK)  -real(PLSWM(:,:,JK),kind=4) )&
+    PRWS(:,:,JK)  = PRWS(:,:,JK)  - ZKVW(JK) *(PWT(:,:,JK)  -real(PLSWM(:,:,JK),kind=MNHREAL32) )&
                     * ZRHODJW(:,:,JK)
 !
-    PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKV(JK)  *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=4) )&
+    PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKV(JK)  *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=MNHREAL32) )&
                     * PRHODJ(:,:,JK)
 !
   END DO  
@@ -554,16 +555,16 @@ IF(OVE_RELAX_GRD) THEN
 !
   DO JK = 1,KALBAS
 !
-    PRUS(:,:,JK)  = PRUS(:,:,JK)  - ZKVBAS(JK)  *(PUT(:,:,JK)  -real(PLSUM(:,:,JK),kind=4) )&
+    PRUS(:,:,JK)  = PRUS(:,:,JK)  - ZKVBAS(JK)  *(PUT(:,:,JK)  -real(PLSUM(:,:,JK),kind=MNHREAL32) )&
                     * ZRHODJU(:,:,JK)
 !
-    PRVS(:,:,JK)  = PRVS(:,:,JK)  - ZKVBAS(JK)  *(PVT(:,:,JK)  -real(PLSVM(:,:,JK),kind=4) )&
+    PRVS(:,:,JK)  = PRVS(:,:,JK)  - ZKVBAS(JK)  *(PVT(:,:,JK)  -real(PLSVM(:,:,JK),kind=MNHREAL32) )&
                     * ZRHODJV(:,:,JK)
 !
-    PRWS(:,:,JK)  = PRWS(:,:,JK)  - ZKVWBAS(JK) *(PWT(:,:,JK)  -real(PLSWM(:,:,JK),kind=4) )&
+    PRWS(:,:,JK)  = PRWS(:,:,JK)  - ZKVWBAS(JK) *(PWT(:,:,JK)  -real(PLSWM(:,:,JK),kind=MNHREAL32) )&
                     * ZRHODJW(:,:,JK)
 !
-    PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKVBAS(JK)  *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=4) )&
+    PRTHS(:,:,JK) = PRTHS(:,:,JK) - ZKVBAS(JK)  *(PTHT(:,:,JK) -real(PLSTHM(:,:,JK),kind=MNHREAL32) )&
                     * PRHODJ(:,:,JK)
 !
   END DO