diff --git a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
index 664392f8aec4e80ce0cc881f70fc5c44dc2d8a46..7cb79db508b6720f8c1bfd0fda4c3561749d016d 100644
--- a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
+++ b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
@@ -1,15 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-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$ 
-! $Date$
-!-----------------------------------------------------------------
 !!    Authors
 !!    -------
 !
@@ -181,7 +174,7 @@
 !
   USE MODE_TOOLS_ll, ONLY : E_GET_DIM_EXT_ll => GET_DIM_EXT_ll
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
   INTEGER, INTENT(OUT)    :: KXDIM, KYDIM
 !
   CALL E_GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM )
@@ -194,7 +187,7 @@
 !
   USE MODE_TOOLS_ll, ONLY : E_GET_DIM_PHYS_ll => GET_DIM_PHYS_ll
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
   INTEGER, INTENT(OUT)    :: KXDIM, KYDIM
 !
   CALL E_GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM )
@@ -207,7 +200,7 @@
 !
   USE MODE_TOOLS_ll, ONLY : E_GET_OR_ll => GET_OR_ll
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
   INTEGER, INTENT(OUT)    :: KXOR, KYOR
 !
   CALL E_GET_OR_ll( HSPLIT, KXOR, KYOR )
@@ -577,7 +570,7 @@
 !
   LOGICAL                           :: LNORTH_ll
   INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
 !
   LNORTH_ll=E_LNORTH_ll( K, HSPLITTING )
 !
@@ -591,7 +584,7 @@
 !
   LOGICAL                           :: LWEST_ll  
   INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
 !
   LWEST_ll=E_LWEST_ll( K, HSPLITTING )
 !
@@ -605,7 +598,7 @@
 !
   LOGICAL                           :: LEAST_ll
   INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
 !
   LEAST_ll=E_LEAST_ll( K, HSPLITTING )
 !
@@ -619,7 +612,7 @@
 !
   LOGICAL                           :: LSOUTH_ll
   INTEGER, INTENT(IN), OPTIONAL     :: K
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING
 !
   LSOUTH_ll=E_LSOUTH_ll( K, HSPLITTING )
 !
@@ -1355,7 +1348,7 @@
   USE MODE_BOUNDARIES_ll, ONLY : E_UPDATE_BOUNDARIES_ll => UPDATE_BOUNDARIES_ll
   USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 !
-  CHARACTER*2, INTENT(IN) :: HDIRECTION
+  CHARACTER(len=2), INTENT(IN) :: HDIRECTION
   TYPE(LIST_ll), POINTER  :: TPLIST
   INTEGER                 :: KINFO
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90 b/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90
index 9fb2a907227f6247165d7a1d0092f3b5fc250e66..7c9c12611b078cafca503cae3085e7c890ec629c 100644
--- a/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_boundaries_ll.f90
@@ -1,16 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-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$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 
 !     #########################
       MODULE MODE_BOUNDARIES_ll
@@ -120,10 +112,10 @@
 !
 !*       0.1   declarations of arguments
 !
-  CHARACTER*2, INTENT(IN) :: HDIRECTION
-  TYPE(LIST_ll), POINTER  :: TPLIST ! pointer to the list of fields
-                                    ! to be updated
-  INTEGER                 :: KINFO  ! return status
+  CHARACTER(len=2), INTENT(IN) :: HDIRECTION
+  TYPE(LIST_ll), POINTER       :: TPLIST ! pointer to the list of fields
+                                         ! to be updated
+  INTEGER                      :: KINFO  ! return status
 !
 !*       0.2   declarations of local variables
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90
index dec89ca379f9b9850675115ac64a81174c89ab45..dc4cf9d39fa9f5bdf90c5f426f04f4dbf210f475 100644
--- a/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_exchange2_ll.f90
@@ -212,7 +212,7 @@
   TYPE(LIST_ll), POINTER :: TZFIELD
 !
   INTEGER                :: ICOUNT
-  CHARACTER*2            :: YCOUNT
+  CHARACTER(len=2)       :: YCOUNT
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90 b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
index d9bd7a2666576b244c0621cbe56ecc3b4b69cb84..1757a95d569e47ec4a0b6e9d004b0b4e8b49d07b 100644
--- a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
@@ -158,7 +158,7 @@
   TYPE(LIST_ll), POINTER :: TZFIELD
 !
   INTEGER                :: ICOUNT
-  CHARACTER*2            :: YCOUNT
+  CHARACTER(len=2)       :: YCOUNT
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90 b/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90
index 5463a305dcd93f8ea093dd6ecdcf5d55e034cf8c..7f95f58a30ede1fa86c67d77968368b6b0c2c5e8 100644
--- a/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90
@@ -1,17 +1,8 @@
-!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$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
-
 !     ########################
 MODULE MODE_SPLITTING_ll
   !     ########################
@@ -659,9 +650,9 @@ CONTAINS
     !
     !*       0.1   declarations of arguments
     !
-    INTEGER, INTENT(IN) :: NB_PROC,X_DIM,Y_DIM,Z_DIM
-    CHARACTER*10, INTENT(IN) :: HSPLITTING ! kind of splitting
-    TYPE(ZONE_LL), INTENT(OUT), DIMENSION(NB_PROC)  :: TPROC
+    INTEGER,                           INTENT(IN)  :: NB_PROC, X_DIM, Y_DIM, Z_DIM
+    CHARACTER(len=10),                 INTENT(IN)  :: HSPLITTING ! kind of splitting
+    TYPE(ZONE_LL), DIMENSION(NB_PROC), INTENT(OUT) :: TPROC
     !
     !*       0.2   declarations of local variables
     !
diff --git a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90 b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
index 626cc3614f8a594ac5dfcb5b7f25af6c99dfd506..2626c5dc320d42fff1c13d1c1e50ede919782de8 100644
--- a/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_tools_ll.f90
@@ -143,7 +143,7 @@
 !*       0.1   declarations of arguments
 !
   INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
 !
 !*       0.2   declarations of local variables
 !
@@ -225,7 +225,7 @@
 !*       0.1   declarations of arguments
 !
   INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
 
 !!
 !*       0.2   declarations of local variables
@@ -308,7 +308,7 @@
 !*       0.1   declarations of arguments
 !
   INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
  
 !!
 !*       0.2   declarations of local variables
@@ -392,7 +392,7 @@
 !*       0.1   declarations of arguments
 !
   INTEGER, INTENT(IN), OPTIONAL :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
  
 !!
 !*       0.2   declarations of local variables
@@ -475,7 +475,7 @@
 !
 !*       0.1   declarations of arguments
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
 !
   INTEGER, INTENT(OUT) :: KXDIM, KYDIM
 !
@@ -549,7 +549,7 @@
 !
 !*       0.1   declarations of arguments
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
 !
   INTEGER, INTENT(OUT) :: KXDIM, KYDIM
 !
@@ -623,7 +623,7 @@
 !
 !*       0.1   declarations of arguments
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
 !
   INTEGER, INTENT(OUT) :: KXOR, KYOR
 !
@@ -3081,7 +3081,7 @@ ENDIF
 !
 !*       0.1   declarations of arguments
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
   INTEGER, INTENT(OUT) :: KOR
 !
 !*       0.2   declarations of local variables
@@ -3347,7 +3347,7 @@ PMEANSQRT = PMEANSQRT / KSIZEGLB
 !
 !*       0.0   declarations of arguments
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y)
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y)
 !
   REAL, DIMENSION(:), INTENT(IN) :: PSOURCE ! x-vector
 !
@@ -3458,7 +3458,7 @@ PMEANSQRT = PMEANSQRT / KSIZEGLB
 !
 !*       0.0   declarations of arguments
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y)
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y)
 !
   REAL, DIMENSION(:), INTENT(IN) :: PSOURCE ! x-vector
 !
@@ -3570,7 +3570,7 @@ PMEANSQRT = PMEANSQRT / KSIZEGLB
 !
 !*       0.0   declarations of arguments
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y)
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT ! Splitting flag (B, X or Y)
 !
   REAL, DIMENSION(:,:), INTENT(IN) :: PSOURCE ! x-vector
 !
diff --git a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90
index 8794b9e36973903f350540e66c5b0062c57f1d8f..e76d24d1dee8d995cc60e06084eebba6a43518d4 100644
--- a/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_toolsz_ll.f90
@@ -229,7 +229,7 @@
     !*       0.1   declarations of arguments
     !
     INTEGER, INTENT(IN) :: NB_PROC,X_DIM,Y_DIM,Z_DIM
-    CHARACTER*10, INTENT(IN) :: HSPLITTING ! kind of splitting
+    CHARACTER(len=10), INTENT(IN) :: HSPLITTING ! kind of splitting
     TYPE(ZONE_LL), INTENT(OUT), DIMENSION(NB_PROC),TARGET  :: TPROC
     !
     !JUAN
diff --git a/src/LIB/SURCOUCHE/src/modi_get_ll.f90 b/src/LIB/SURCOUCHE/src/modi_get_ll.f90
index 504ba793f4b2fb5fbc38235068f9fd0a96123b33..f77ebb3ea5899a9b0d8e4f078c1fe13bd40ca116 100644
--- a/src/LIB/SURCOUCHE/src/modi_get_ll.f90
+++ b/src/LIB/SURCOUCHE/src/modi_get_ll.f90
@@ -1,16 +1,8 @@
-!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$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 
 !     ##################
       MODULE MODI_GET_ll 
@@ -22,7 +14,7 @@ INTERFACE
        SUBROUTINE  GET_DIM_EXT_ll( HSPLIT, KXDIM, KYDIM )
 !!     ##################################################
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
   INTEGER, INTENT(OUT) :: KXDIM, KYDIM
 !
        END SUBROUTINE GET_DIM_EXT_ll
@@ -31,7 +23,7 @@ INTERFACE
        SUBROUTINE  GET_DIM_PHYS_ll( HSPLIT, KXDIM, KYDIM )
 !!     ###################################################
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
   INTEGER, INTENT(OUT) :: KXDIM, KYDIM
 !
        END SUBROUTINE GET_DIM_PHYS_ll
@@ -40,7 +32,7 @@ INTERFACE
        SUBROUTINE GET_OR_ll( HSPLIT, KXOR, KYOR )
 !!     ##########################################
 !
-  CHARACTER*1, INTENT(IN) :: HSPLIT
+  CHARACTER(len=1), INTENT(IN) :: HSPLIT
   INTEGER, INTENT(OUT) :: KXOR, KYOR
 !
        END SUBROUTINE GET_OR_ll
diff --git a/src/LIB/SURCOUCHE/src/modi_location_ll.f90 b/src/LIB/SURCOUCHE/src/modi_location_ll.f90
index a832fb7ce7ab75187250f62a83c2503e27f842d8..4f6e4cdea2fb14c649ed4ff0b1bb5c35e25358dd 100644
--- a/src/LIB/SURCOUCHE/src/modi_location_ll.f90
+++ b/src/LIB/SURCOUCHE/src/modi_location_ll.f90
@@ -1,16 +1,8 @@
-!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$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 
 !     #######################
       MODULE MODI_LOCATION_ll
@@ -22,8 +14,8 @@ INTERFACE
        LOGICAL FUNCTION LNORTH_ll( K, HSPLITTING )
 !!     ###########################################
 !
-  INTEGER, INTENT(IN), OPTIONAL     :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
 !
        END FUNCTION LNORTH_ll
 !
@@ -31,8 +23,8 @@ INTERFACE
        LOGICAL FUNCTION LWEST_ll( K, HSPLITTING )
 !!     ##########################################
 !
-  INTEGER, INTENT(IN), OPTIONAL     :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
 !
        END FUNCTION LWEST_ll
 !
@@ -40,8 +32,8 @@ INTERFACE
        LOGICAL FUNCTION LSOUTH_ll( K, HSPLITTING )
 !!     ###########################################
 !
-  INTEGER, INTENT(IN), OPTIONAL     :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
 !
        END FUNCTION LSOUTH_ll
 !
@@ -49,8 +41,8 @@ INTERFACE
        LOGICAL FUNCTION LEAST_ll( K, HSPLITTING )
 !!     ##########################################
 !
-  INTEGER, INTENT(IN), OPTIONAL     :: K ! number of the subdomain
-  CHARACTER*1, INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
+  INTEGER,          INTENT(IN), OPTIONAL :: K ! number of the subdomain
+  CHARACTER(len=1), INTENT(IN), OPTIONAL :: HSPLITTING ! kind of splitting
 !
        END FUNCTION LEAST_ll
 !
diff --git a/src/LIB/SURCOUCHE/src/modi_update_ll.f90 b/src/LIB/SURCOUCHE/src/modi_update_ll.f90
index 046255d89fb9b201514f60fd887af7c6b6b68e7c..19479f91a80ccbda23799dfc55bdd65f61920905 100644
--- a/src/LIB/SURCOUCHE/src/modi_update_ll.f90
+++ b/src/LIB/SURCOUCHE/src/modi_update_ll.f90
@@ -1,16 +1,8 @@
-!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$ 
-! $Date$
-!-----------------------------------------------------------------
-!-----------------------------------------------------------------
 
 !     #####################
       MODULE MODI_UPDATE_ll 
@@ -47,7 +39,7 @@ INTERFACE
 !
   USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 !
-  CHARACTER*2, INTENT(IN) :: HDIRECTION
+  CHARACTER(len=2), INTENT(IN) :: HDIRECTION
   TYPE(LIST_ll), POINTER :: TPLIST ! pointer to the list of fields to be updated
   INTEGER                :: KINFO  ! return status
 !
diff --git a/src/MNH/ares.f b/src/MNH/ares.f
index 646a217f6cdc3264789c46ec40186a04b4520101..369f93348e863454dc4e20a63c5318914ab2fa8d 100644
--- a/src/MNH/ares.f
+++ b/src/MNH/ares.f
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1987-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.
 !-----------------------------------------------------------------
 c/////////////////////////////////////////////////////////////////////////////
@@ -826,7 +826,7 @@ C....................................................................
       INTEGER    XSTAT3       ! Special  error
       PARAMETER (XSTAT3 = 3)
 
-      CHARACTER*120 XMSG
+      CHARACTER(len=120) XMSG
 
 C...........PARAMETERS and their descriptions:
 
@@ -846,7 +846,7 @@ C...........ARGUMENTS and their descriptions
 
 C...........SCRATCH LOCAL VARIABLES and their descriptions:
 
-      CHARACTER*16 PNAME            ! driver program name
+      CHARACTER(len=16) PNAME            ! driver program name
       SAVE         PNAME
 
       INTEGER      IAN                  ! anion indX
diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90
index aeaeaa05e1482dfb0ba2561f5923eb1ef034195d..265452f1681cfa2797ae482ccd843fc3ce233e4b 100644
--- a/src/MNH/c2r2_adjust.f90
+++ b/src/MNH/c2r2_adjust.f90
@@ -17,33 +17,27 @@ INTERFACE
 !
 USE MODD_IO, ONLY: TFILEDATA
 !
-INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
-TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
-                                                    ! turbulence scheme
-CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
-LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of 
-                                                    ! the OUTPUT FM-file
-LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
-                                                    ! Condensation
-REAL,                     INTENT(IN)    :: PTSTEP   ! Double Time step
-                                                   ! (single if cold start)
-!
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODJ  ! Dry density * Jacobian
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSIGS   ! Sigma_s at time t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABST  ! Absolute Pressure at t     
-!
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)       :: PTHS  ! Theta source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)       :: PRVS  ! Water vapor m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)       :: PRCS  ! Cloud water m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PCNUCS  ! Nucl. aero. conc. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PCCS    ! Cloud water conc. source
-!
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSRCS   ! Second-order flux
-                                                   ! s'rc'/2Sigma_s2 at time t+1
-                                                   ! multiplied by Lambda_3
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PCLDFR  ! Cloud fraction          
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN) :: PRRS  ! Rain  water m.r. source
+INTEGER,                          INTENT(IN)    :: KRR        ! Number of moist variables
+TYPE(TFILEDATA),                  INTENT(IN)    :: TPFILE     ! Output file
+CHARACTER(len=4),                 INTENT(IN)    :: HTURBDIM   ! Dimensionality of the turbulence scheme
+CHARACTER(len=4),                 INTENT(IN)    :: HRAD       ! Radiation scheme name
+LOGICAL,                          INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of the OUTPUT file
+LOGICAL,                          INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid condensation
+REAL,                             INTENT(IN)    :: PTSTEP     ! Double Time step (single if cold start)
+!
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRHODJ     ! Dry density * Jacobian
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PSIGS      ! Sigma_s at time t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PPABST     ! Absolute Pressure at t
+!
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PTHS       ! Theta source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRVS       ! Water vapor m.r. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRCS       ! Cloud water m.r. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCNUCS     ! Nucl. aero. conc. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCCS       ! Cloud water conc. source
+!
+REAL, DIMENSION(:,:,:),           INTENT(OUT)   :: PSRCS      ! Second-order flux s'rc'/2Sigma_s2 at time t+1 times Lambda_3
+REAL, DIMENSION(:,:,:),           INTENT(OUT)   :: PCLDFR     ! Cloud fraction
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    :: PRRS       ! Rain  water m.r. source
 !
 END SUBROUTINE C2R2_ADJUST
 !
@@ -168,36 +162,27 @@ IMPLICIT NONE
 !
 !*       0.1   Declarations of dummy arguments :
 !
-!
-INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
-TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
-                                                    ! turbulence scheme
-CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
-LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of 
-                                                    ! the OUTPUT FM-file
-LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
-                                                    ! Condensation
-REAL,                     INTENT(IN)    :: PTSTEP   ! Double Time step
-                                                   ! (single if cold start)
-!
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODJ  ! Dry density * Jacobian
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSIGS   ! Sigma_s at time t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABST  ! Absolute Pressure at t     
-!
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)       :: PTHS  ! Theta source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)       :: PRVS  ! Water vapor m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)       :: PRCS  ! Cloud water m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PCNUCS  ! Nucl. aero. conc. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PCCS    ! Cloud water conc. source
-!
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSRCS   ! Second-order flux
-                                                   ! s'rc'/2Sigma_s2 at time t+1
-                                                   ! multiplied by Lambda_3
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PCLDFR  ! Cloud fraction          
-REAL, DIMENSION(:,:,:), OPTIONAL,  INTENT(IN) :: PRRS  ! Rain  water m.r. source
-!
-!
+INTEGER,                          INTENT(IN)    :: KRR        ! Number of moist variables
+TYPE(TFILEDATA),                  INTENT(IN)    :: TPFILE     ! Output file
+CHARACTER(len=4),                 INTENT(IN)    :: HTURBDIM   ! Dimensionality of the turbulence scheme
+CHARACTER(len=4),                 INTENT(IN)    :: HRAD       ! Radiation scheme name
+LOGICAL,                          INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of the OUTPUT file
+LOGICAL,                          INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid condensation
+REAL,                             INTENT(IN)    :: PTSTEP     ! Double Time step (single if cold start)
+!
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRHODJ     ! Dry density * Jacobian
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PSIGS      ! Sigma_s at time t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PPABST     ! Absolute Pressure at t
+!
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PTHS       ! Theta source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRVS       ! Water vapor m.r. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRCS       ! Cloud water m.r. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCNUCS     ! Nucl. aero. conc. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCCS       ! Cloud water conc. source
+!
+REAL, DIMENSION(:,:,:),           INTENT(OUT)   :: PSRCS      ! Second-order flux s'rc'/2Sigma_s2 at time t+1 times Lambda_3
+REAL, DIMENSION(:,:,:),           INTENT(OUT)   :: PCLDFR     ! Cloud fraction
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    :: PRRS       ! Rain  water m.r. source
 !
 !*       0.2   Declarations of local variables :
 !
diff --git a/src/MNH/c3r5_adjust.f90 b/src/MNH/c3r5_adjust.f90
index 84f3114c250296cc3318b4a973211ecd4b012e2d..b286ac8c7bcf1b09dad24c2ffcb17d1b7077e254 100644
--- a/src/MNH/c3r5_adjust.f90
+++ b/src/MNH/c3r5_adjust.f90
@@ -16,51 +16,46 @@ INTERFACE
                              PRVS, PRCS, PRRS, PRIS, PRSS, PRGS, PRHS,         &
                              PCCT, PCIT, PCNUCS, PCCS, PINUCS, PCIS,           &
                              PTHS, PSRCS, PCLDFR                               )
-         !
-INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
-INTEGER,                  INTENT(IN)    :: KMI      ! Model index 
-CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
-                                                    ! turbulence scheme
-CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
-LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
-                                                    ! Condensation
-REAL,                     INTENT(IN)    :: PTSTEP   ! Time step          
-!
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODREF! Dry density of the 
-                                                   ! reference state
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRHODJ  ! Dry density * Jacobian
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PEXNREF ! Reference Exner function
-REAL, DIMENSION(:,:,:),   INTENT(IN)    :: PSIGS   ! Sigma_s at time t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PPABST  ! Absolute Pressure at t     
-!
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRVT    ! Water vapor m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRCT    ! Cloud water m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRRT ! Rain water m.r. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)   ::  PRIT    ! Cloud ice  m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRST ! Aggregate  m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRGT ! Graupel    m.r. at t
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRHT ! Hail       m.r. at t
-!
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRVS    ! Water vapor m.r. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRCS    ! Cloud water m.r. source
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRRS ! Rain water m.r. at t+1
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRIS    ! Cloud ice  m.r. at t+1
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRSS ! Aggregate  m.r. at t+1
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRGS ! Graupel    m.r. at t+1
-REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)   ::  PRHS ! Hail       m.r. at t+1
-!
-REAL, DIMENSION(:,:,:),   INTENT(IN)       :: PCCT    ! Cloud water conc. at t
-REAL, DIMENSION(:,:,:),   INTENT(IN)       :: PCIT    ! Cloud ice   conc. at t
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PCNUCS  ! Nucl. aero. conc. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PCCS    ! Cloud water conc. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PINUCS  ! Ice Nucl.   conc. source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT)    :: PCIS    ! Cloud ice   conc. source
-!
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PTHS    ! Theta source
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PSRCS   ! Second-order flux
-                                                   ! s'rc'/2Sigma_s2 at time t+1
-                                                   ! multiplied by Lambda_3
-REAL, DIMENSION(:,:,:),   INTENT(OUT)   :: PCLDFR  ! Cloud fraction          
+!
+INTEGER,                          INTENT(IN)    :: KRR        ! Number of moist variables
+INTEGER,                          INTENT(IN)    :: KMI        ! Model index
+CHARACTER(len=4),                 INTENT(IN)    :: HTURBDIM   ! Dimensionality of the turbulence scheme
+CHARACTER(len=4),                 INTENT(IN)    :: HRAD       ! Radiation scheme name
+LOGICAL,                          INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid Condensation
+REAL,                             INTENT(IN)    :: PTSTEP     ! Time step
+!
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRHODREF   ! Dry density of the reference state
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PRHODJ     ! Dry density * Jacobian
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PEXNREF    ! Reference Exner function
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PSIGS      ! Sigma_s at time t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PPABST     ! Absolute Pressure at t
+!
+REAL, DIMENSION(:,:,:),           INTENT(IN)    ::  PRVT      ! Water vapor m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    ::  PRCT      ! Cloud water m.r. at t
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    ::  PRRT      ! Rain water m.r. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    ::  PRIT      ! Cloud ice  m.r. at t
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    ::  PRST      ! Aggregate  m.r. at t
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    ::  PRGT      ! Graupel    m.r. at t
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    ::  PRHT      ! Hail       m.r. at t
+!
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRVS       ! Water vapor m.r. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRCS       ! Cloud water m.r. source
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    :: PRRS       ! Rain water m.r. at t+1
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PRIS       ! Cloud ice  m.r. at t+1
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    :: PRSS       ! Aggregate  m.r. at t+1
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    :: PRGS       ! Graupel    m.r. at t+1
+REAL, DIMENSION(:,:,:), OPTIONAL, INTENT(IN)    :: PRHS       ! Hail       m.r. at t+1
+!
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PCCT       ! Cloud water conc. at t
+REAL, DIMENSION(:,:,:),           INTENT(IN)    :: PCIT       ! Cloud ice   conc. at t
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCNUCS     ! Nucl. aero. conc. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCCS       ! Cloud water conc. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PINUCS     ! Ice Nucl.   conc. source
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PCIS       ! Cloud ice   conc. source
+!
+REAL, DIMENSION(:,:,:),           INTENT(INOUT) :: PTHS       ! Theta source
+REAL, DIMENSION(:,:,:),           INTENT(OUT)   :: PSRCS      ! Second-order flux: s'rc'/2Sigma_s2 at time t+1 times Lambda_3
+REAL, DIMENSION(:,:,:),           INTENT(OUT)   :: PCLDFR     ! Cloud fraction
 !
 END SUBROUTINE C3R5_ADJUST
 !
diff --git a/src/MNH/ch_emission_flux0d.f90 b/src/MNH/ch_emission_flux0d.f90
index 39f3d2947b77cb9aafb9263f354fb6fa3a478b82..540a03306b94eb4c9c1501f269d4d09e6e87a004 100644
--- a/src/MNH/ch_emission_flux0d.f90
+++ b/src/MNH/ch_emission_flux0d.f90
@@ -14,7 +14,7 @@ IMPLICIT NONE
 REAL,                 INTENT(IN)  :: PTIME      ! time of simulation in sec UTC
                                                 ! (counting from midnight)
 REAL, DIMENSION(NEQ), INTENT(OUT) :: PFLUX      ! emission flux in ppp*m/s
-CHARACTER*(*),        INTENT(IN)  :: HINPUTFILE ! name of the input file
+CHARACTER(len=*),     INTENT(IN)  :: HINPUTFILE ! name of the input file
 INTEGER,              INTENT(IN)  :: KLUOUT     ! output listing channel
 INTEGER,              INTENT(IN)  :: KVERB      ! verbosity level
 END SUBROUTINE CH_EMISSION_FLUX0D
@@ -97,15 +97,15 @@ IMPLICIT NONE
 REAL,                 INTENT(IN)  :: PTIME      ! time of simulation in sec UTC
                                                 ! (counting from midnight)
 REAL, DIMENSION(NEQ), INTENT(OUT) :: PFLUX      ! emission flux in ppp*m/s
-CHARACTER*(*),        INTENT(IN)  :: HINPUTFILE ! name of the input file
+CHARACTER(len=*),     INTENT(IN)  :: HINPUTFILE ! name of the input file
 INTEGER,              INTENT(IN)  :: KLUOUT     ! output listing channel
 INTEGER,              INTENT(IN)  :: KVERB      ! verbosity level
 !
 !*       0.2  declaration of local variables
 !
 INTEGER       :: JI, JJ      ! loop control
-CHARACTER*80  :: YCOMMENT    ! comment line in the input file
-CHARACTER*80  :: YFORMAT     ! format of the input data
+CHARACTER(len=80) :: YCOMMENT    ! comment line in the input file
+CHARACTER(len=80) :: YFORMAT     ! format of the input data
 INTEGER       :: ICHEMIS     ! number of variables for which a flux is given
                              ! in the input file
 INTEGER       :: IIO         ! I/O channel
diff --git a/src/MNH/ch_f77.fx90 b/src/MNH/ch_f77.fx90
index aed9e28b8e028a40bdf8509717d5b76f57a44855..9a8388966ef3e1fdb095d86476d1bca823c81414 100644
--- a/src/MNH/ch_f77.fx90
+++ b/src/MNH/ch_f77.fx90
@@ -1104,7 +1104,7 @@ C
      1   PT2, RH, RTOLI, SIZE, TCRIT, TNEXT, TOLSF, TP, TWO, ZERO
       INTEGER I, IER, IFLAG, IMXER, JCO, KGO, LENIW, LENJ, LENP, LENRW,
      1   LENWM, LF0, MBAND, ML, MORD, MU, MXHNL0, MXSTP0, NITER, NSLAST
-      CHARACTER*80 MSG
+      CHARACTER(len=80) MSG
 C
 C Type declaration for function subroutines called ---------------------
 C
@@ -1943,7 +1943,7 @@ C Type declarations for local variables --------------------------------
 C
       REAL C, HUN, R, S, TFUZZ, TN1, TP, ZERO
       INTEGER I, IC, J, JB, JB2, JJ, JJ1, JP1
-      CHARACTER*80 MSG
+      CHARACTER(len=80) MSG
 C-----------------------------------------------------------------------
 C The following Fortran-77 declaration is to cause the values of the
 C listed (local) variables to be saved between calls to this integrator.
@@ -3660,8 +3660,8 @@ C     ##################################################################
       INTEGER NMES, NERR, LEVEL, NI, I1, I2, NR
 C
 CKS:  changed to adapt to Fortran90
-C     CHARACTER*1 MSG(NMES)
-      CHARACTER*(*) MSG
+C     CHARACTER(len=1) MSG(NMES)
+      CHARACTER(len=*) MSG
 C-----------------------------------------------------------------------
 C Subroutines XERRWV, XSETF, XSETUN, and the two function routines
 C MFLGSV and LUNSAV, as given here, constitute a simplified version of
@@ -4650,7 +4650,7 @@ c      INCLUDE 'params'
       INTEGER nj, ij
       REAL sj(kj,kz,kw), valj(kj,kz)
       REAL djdw
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER tpflag(kj)
 
 **** Re-scaling factors (can be read from input file)
@@ -4685,13 +4685,13 @@ c      INCLUDE 'params'
 * input/output control
 
       LOGICAL intrct
-      CHARACTER*6 inpfil, outfil
+      CHARACTER(len=6) inpfil, outfil
 
       INTEGER iout
 
       REAL dirsun, difdn, difup
 
-      CHARACTER*1 again
+      CHARACTER(len=1) again
 
 * Save arrays for output:
 
@@ -4720,7 +4720,7 @@ C
       REAL,         INTENT(IN) :: lwc(nlevel)
       INTEGER,      INTENT(IN) :: njout
       REAL,         INTENT(OUT) :: jout(nlevel,njout)
-      CHARACTER*40, INTENT(OUT) :: jlabelout(njout)
+      CHARACTER(len=40), INTENT(OUT) :: jlabelout(njout)
 C
       LOGICAL LFIRSTCALL
       DATA LFIRSTCALL /.TRUE./
@@ -5403,8 +5403,8 @@ c      INCLUDE 'params'
       REAL wincr
       INTEGER iw, i
 
-      CHARACTER*40 fi
-      CHARACTER*20 wlabel
+      CHARACTER(len=40) fi
+      CHARACTER(len=20) wlabel
 
       REAL airout
       INTEGER mrefr
@@ -8860,7 +8860,7 @@ c      c      INCLUDE 'params'
 
 * work arrays for input data files:
 
-      CHARACTER*40 fil
+      CHARACTER(len=40) fil
       REAL x1(kdata)
       REAL y1(kdata)
       INTEGER nhead, n, i, ierr
@@ -9513,7 +9513,7 @@ c      c      INCLUDE 'params'
       REAL lambda
       INTEGER ierr
       INTEGER i, j, n
-      CHARACTER*40 FIL
+      CHARACTER(len=40) FIL
 
 *_______________________________________________________________________
 
@@ -11235,7 +11235,7 @@ c     INCLUDE 'params'
       REAL dum
       INTEGER ierr
       INTEGER i, n, idum
-      CHARACTER*40 fil
+      CHARACTER(len=40) fil
 
 ************* NO2 absorption cross sections
 *     measurements by:
@@ -11877,7 +11877,7 @@ c     INCLUDE 'params'
       REAL dum
       INTEGER ierr
       INTEGER i, l, n, idum
-      CHARACTER*40 fil
+      CHARACTER(len=40) fil
 *_______________________________________________________________________
 
 ************* absorption cross sections:
@@ -17790,7 +17790,7 @@ c        after making symbolic dump (machine-specific)
       use mode_msg
 
       LOGICAL       FATAL, MsgLim, Cray
-      CHARACTER*(*) MESSAG
+      CHARACTER(len=*) MESSAG
       INTEGER       MaxMsg, NumMsg
       SAVE          MaxMsg, NumMsg, MsgLim
       DATA NumMsg / 0 /,  MaxMsg / 100 /,  MsgLim / .FALSE. /
@@ -17826,7 +17826,7 @@ c      INPUT :   VarNam = Name of erroneous variable to be written
 c                         ( CHARACTER, any length )
       IMPLICIT NONE
 
-      CHARACTER*(*)  VarNam
+      CHARACTER(len=*)  VarNam
       LOGICAL WrtBad
       INTEGER        MaxMsg, NumMsg
       SAVE  NumMsg, MaxMsg
@@ -17856,7 +17856,7 @@ c               Minval = Value to which that dimension should be
 c                        increased (at least)
       IMPLICIT NONE
 
-      CHARACTER*(*)  DimNam
+      CHARACTER(len=*)  DimNam
       INTEGER        MinVal
       LOGICAL WrtDim
 
@@ -17877,7 +17877,7 @@ c       Write name (VarNam) of variable failing self-test and its
 c       percent error from the correct value;  return  'FALSE'.
       IMPLICIT NONE
 
-      CHARACTER*(*)  VarNam
+      CHARACTER(len=*)  VarNam
       REAL           RelErr
       LOGICAL TstBad
 
@@ -19728,7 +19728,7 @@ CCC FILE rxn.f
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -19802,7 +19802,7 @@ c     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -20188,7 +20188,7 @@ c      myld = kjpl00
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -20262,7 +20262,7 @@ c     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -20431,7 +20431,7 @@ c     INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -20504,7 +20504,7 @@ c     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -20841,7 +20841,7 @@ c     INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -20915,7 +20915,7 @@ c     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -21046,7 +21046,7 @@ c     INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 *=  EDIT HISTORY:                                                            =*
@@ -21123,7 +21123,7 @@ c     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -21248,7 +21248,7 @@ c     INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -21322,7 +21322,7 @@ c     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -21458,7 +21458,7 @@ C      ENDDO
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -21532,7 +21532,7 @@ c     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -21622,7 +21622,7 @@ C* local
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -21696,7 +21696,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -21860,7 +21860,7 @@ C      ENDIF
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -21934,7 +21934,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -22210,7 +22210,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -22287,7 +22287,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -22832,7 +22832,7 @@ c         ENDDO
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -22906,7 +22906,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -23328,7 +23328,7 @@ c         x = yg4(iw)
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -23402,7 +23402,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -23587,7 +23587,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -23661,7 +23661,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -24021,7 +24021,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -24095,7 +24095,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -24505,7 +24505,7 @@ c               kq = 1.93e4 * EXP(-5639/wc(iw))
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -24579,7 +24579,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -24928,7 +24928,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -25002,7 +25002,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -25224,7 +25224,7 @@ c     $        STATUS='old')
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -25298,7 +25298,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -25646,7 +25646,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -25720,7 +25720,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -25863,7 +25863,7 @@ C      ENDIF
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -25937,7 +25937,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -26027,7 +26027,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -26101,7 +26101,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -26261,7 +26261,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -26335,7 +26335,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -26426,7 +26426,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -26500,7 +26500,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -26592,7 +26592,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -26666,7 +26666,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -26786,7 +26786,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -26860,7 +26860,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -26979,7 +26979,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -27053,7 +27053,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -27146,7 +27146,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -27220,7 +27220,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -27317,7 +27317,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -27391,7 +27391,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -27488,7 +27488,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -27562,7 +27562,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -27655,7 +27655,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -27729,7 +27729,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -27873,7 +27873,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -27947,7 +27947,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -28090,7 +28090,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -28164,7 +28164,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -28258,7 +28258,7 @@ C     INTEGER n1, n2, n3, n4, n5
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -28332,7 +28332,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -28346,7 +28346,7 @@ c      INCLUDE 'params'
       INTEGER i, iw, idum
       INTEGER iz, k
       REAL lambda, sum
-      CHARACTER*120 inline
+      CHARACTER(len=120) inline
 
       REAL coeff(4,3), TBar, LBar
 
@@ -28466,7 +28466,7 @@ C the measurements beyond 220 nm are very large (Orlando, priv.comm.)
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -28537,7 +28537,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -28554,7 +28554,7 @@ c      INCLUDE 'params'
       INTEGER i, iw, n, idum
       INTEGER iz, k
       REAL lambda, sum
-      CHARACTER*120 inline
+      CHARACTER(len=120) inline
 
       REAL coeff(4,3), TBar, LBar
 
@@ -28670,7 +28670,7 @@ C     ENDDO
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -28744,7 +28744,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -28839,7 +28839,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -28912,7 +28912,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -28927,7 +28927,7 @@ c      INCLUDE 'params'
       INTEGER ierr
       INTEGER iz, k
       REAL lambda, sum
-      CHARACTER*80 inline
+      CHARACTER(len=80) inline
 
       REAL coeff(4,3), TBar, LBar
 
@@ -29053,7 +29053,7 @@ c             sq(j,iz,iw) = qy * EXP(sum)
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -29127,7 +29127,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -29222,7 +29222,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -29296,7 +29296,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -29391,7 +29391,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -29465,7 +29465,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -29653,7 +29653,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -29727,7 +29727,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -29829,7 +29829,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -29903,7 +29903,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -29998,7 +29998,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -30072,7 +30072,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -30167,7 +30167,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -30241,7 +30241,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -30336,7 +30336,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -30410,7 +30410,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -30506,7 +30506,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -30578,7 +30578,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -30667,7 +30667,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -30741,7 +30741,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -30876,7 +30876,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -30950,7 +30950,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -31049,7 +31049,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -31123,7 +31123,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -31252,7 +31252,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -31326,7 +31326,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -31468,7 +31468,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -31542,7 +31542,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -31675,7 +31675,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -31749,7 +31749,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -31880,7 +31880,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -31954,7 +31954,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -32057,7 +32057,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -32131,7 +32131,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -32260,7 +32260,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -32334,7 +32334,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -32446,7 +32446,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -32520,7 +32520,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -32631,7 +32631,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -32703,7 +32703,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -32779,7 +32779,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -32851,7 +32851,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -32927,7 +32927,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -32999,7 +32999,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -33073,7 +33073,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -33147,7 +33147,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -33242,7 +33242,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -33316,7 +33316,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -33442,7 +33442,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -33514,7 +33514,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -33578,7 +33578,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -33651,7 +33651,7 @@ c      INCLUDE 'params'
 * output weighting functions
 
       INTEGER j
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -33724,7 +33724,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -33799,7 +33799,7 @@ c      INCLUDE 'params'
 * output weighting functions
 
       INTEGER j
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -33942,7 +33942,7 @@ c      INCLUDE 'params'
       REAL wl(kw), wc(kw), tlev(kz), airden(kz)
 
 * weighting functions
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -34105,7 +34105,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -34179,7 +34179,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -34278,7 +34278,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -34352,7 +34352,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -34472,7 +34472,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -34546,7 +34546,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -34646,7 +34646,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -34720,7 +34720,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -34826,7 +34826,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -34900,7 +34900,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -34999,7 +34999,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -35073,7 +35073,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -35167,7 +35167,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -35241,7 +35241,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -35383,7 +35383,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -35457,7 +35457,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -35581,7 +35581,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -35655,7 +35655,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -35748,7 +35748,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -35823,7 +35823,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -35917,7 +35917,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -35991,7 +35991,7 @@ C     INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -36088,7 +36088,7 @@ C     INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -36162,7 +36162,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -36254,7 +36254,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -36328,7 +36328,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -36539,7 +36539,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -36613,7 +36613,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -36764,7 +36764,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -36838,7 +36838,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -36938,7 +36938,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -37012,7 +37012,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -37111,7 +37111,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -37185,7 +37185,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -37282,7 +37282,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -37356,7 +37356,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -37458,7 +37458,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -37532,7 +37532,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -37628,7 +37628,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -37704,7 +37704,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -37889,7 +37889,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -37963,7 +37963,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -38058,7 +38058,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -38132,7 +38132,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -38227,7 +38227,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -38301,7 +38301,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -38420,7 +38420,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -38494,7 +38494,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -38613,7 +38613,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -38687,7 +38687,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -38787,7 +38787,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -38861,7 +38861,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -38961,7 +38961,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -39035,7 +39035,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -39133,7 +39133,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -39207,7 +39207,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -39303,7 +39303,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -39377,7 +39377,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -39491,7 +39491,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -39565,7 +39565,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -39658,7 +39658,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -39732,7 +39732,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -39827,7 +39827,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 *= Routine added by M. Leriche for specie KETH and KETL of CACM, ReLACS2     =*
@@ -39904,7 +39904,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -40003,7 +40003,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 *= Routine added by M. Leriche for BALD in RACM2 mecanism - March 2018       =*
@@ -40079,7 +40079,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -40175,7 +40175,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 *= Routine added by M. Leriche for ReLACS-AQ and ReLACS3 mecanisms           =*
@@ -40252,7 +40252,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -40355,7 +40355,7 @@ c      INCLUDE 'params'
 *=  SQ     - REAL, cross section x quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 *= Routine added by M. Leriche for ReLACS-AQ and ReLACS3 mecanisms           =*
@@ -40432,7 +40432,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       INTEGER TPFLAG(kj)
       REAL sq(kj,kz,kw)
 
@@ -41794,7 +41794,7 @@ c      INCLUDE 'params'
       REAL a1, a2, dum
       INTEGER ierr
       INTEGER i,l,m, n, idum
-      CHARACTER*40 fil
+      CHARACTER(len=40) fil
 *_______________________________________________________________________
 
 ************* absorption cross sections:
@@ -42440,7 +42440,7 @@ CCC FILE swchem.f
 *=  SQ     - REAL, cross section * quantum yield (cm^2) for each          (O)=*
 *=           photolysis reaction defined, at each defined wavelength and     =*
 *=           at each defined altitude level                                  =*
-*=  JLABEL - CHARACTER*50, string identifier for each photolysis reaction (O)=*
+*=  JLABEL - CHARACTER(len=50), string identifier for each photolysis reaction (O)=*
 *=           defined                                                         =*
 *-----------------------------------------------------------------------------*
 
@@ -42514,7 +42514,7 @@ c      INCLUDE 'params'
 
 * weighting functions
 
-      CHARACTER*50 jlabel(kj)
+      CHARACTER(len=50) jlabel(kj)
       REAL sq(kj,kz,kw)
       INTEGER tpflag(kj)
 
diff --git a/src/MNH/ch_init_diagnostics.f90 b/src/MNH/ch_init_diagnostics.f90
index 9d7b72e9f60184e3a8445371081c7fc3e935b8f3..a3c4783a893b3205ee2657966f3ee2f67a940db0 100644
--- a/src/MNH/ch_init_diagnostics.f90
+++ b/src/MNH/ch_init_diagnostics.f90
@@ -62,8 +62,8 @@ IMPLICIT NONE
 !*       0.2 Declaration of local variables
 !        ----------------------------------
 !
-CHARACTER*8  :: YDATE  ! for retrieval of date and time
-CHARACTER*10 :: YTIME  ! dito
+CHARACTER(len=8)  :: YDATE  ! for retrieval of date and time
+CHARACTER(len=10) :: YTIME  ! dito
 !
 INTEGER :: JI
 !INTEGER, DIMENSION(2, NNONZEROTERMS) :: IINDEX ! indices of non-zero terms
diff --git a/src/MNH/ch_init_jvalues.f90 b/src/MNH/ch_init_jvalues.f90
index 72cb3783fe6e8134e495ffe6cb7898cc944a6f38..df8e26e72607081300dc8a4427b1e032ed103dcf 100644
--- a/src/MNH/ch_init_jvalues.f90
+++ b/src/MNH/ch_init_jvalues.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2001-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$
-! MASDEV4_7 chimie 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ############################
       MODULE MODI_CH_INIT_JVALUES
 !     ############################
@@ -104,12 +99,12 @@ INTEGER                           :: IDATE
 !
 ! J value storage
 !
-CHARACTER*40, DIMENSION(JPJVMAX)  :: YLABELOUT
-REAL, DIMENSION(NZZ_JVAL,JPJVMAX) :: ZJOUT
+CHARACTER(len=40), DIMENSION(JPJVMAX) :: YLABELOUT
+REAL, DIMENSION(NZZ_JVAL,JPJVMAX)     :: ZJOUT
 !
 ! Parameters for interpolation
 !
-INTEGER                           :: JALB, JKLEV, JSZA, JJVAL
+INTEGER                               :: JALB, JKLEV, JSZA, JJVAL
 !
 !----------------------------------------------------------------------------
 !
diff --git a/src/MNH/ch_init_model0d.f90 b/src/MNH/ch_init_model0d.f90
index acf9882dbf941aca731bea1f232f27150de0c6af..f641bf9f6bb503cd934dc7b2191f639aeae7acb2 100644
--- a/src/MNH/ch_init_model0d.f90
+++ b/src/MNH/ch_init_model0d.f90
@@ -10,7 +10,7 @@
 INTERFACE
 SUBROUTINE CH_INIT_MODEL0D(HNAMELISTFILE)
 IMPLICIT NONE
-CHARACTER*(*), INTENT(IN) :: HNAMELISTFILE
+CHARACTER(len=*), INTENT(IN) :: HNAMELISTFILE
 END SUBROUTINE CH_INIT_MODEL0D
 END INTERFACE
 END MODULE MODI_CH_INIT_MODEL0D
@@ -69,7 +69,7 @@ USE MODN_CH_SOLVER_n
 !        -----------------
 IMPLICIT NONE
 
-CHARACTER*(*), INTENT(IN) :: HNAMELISTFILE ! name of namelist input file
+CHARACTER(len=*), INTENT(IN) :: HNAMELISTFILE ! name of namelist input file
 
 INTEGER :: ILU ! unit number for IO
 
diff --git a/src/MNH/ch_init_output.f90 b/src/MNH/ch_init_output.f90
index d6d4e7bc6dbc6fe4da7e4027e0b4441433b3b5f9..289dacebb6851753ca997051166d0dfd7ab673bb 100644
--- a/src/MNH/ch_init_output.f90
+++ b/src/MNH/ch_init_output.f90
@@ -74,8 +74,8 @@ TYPE(METEOTRANSTYPE), INTENT(IN) :: TPM  ! the meteo variables
 !
 !*       0.2  declaration of local variables
 !
-CHARACTER*8            :: YDATE  ! for retrieval of date and time
-CHARACTER*10           :: YTIME  ! dito
+CHARACTER(len=8)       :: YDATE  ! for retrieval of date and time
+CHARACTER(len=10)      :: YTIME  ! dito
 INTEGER                :: JI     ! loop control
 INTEGER                :: NAERO
 !
diff --git a/src/MNH/ch_isoropia.f90 b/src/MNH/ch_isoropia.f90
index 589919ed5c49033e99a3232c5e566ab07c74f3a8..033949968c9b11e0e920e58ff82fd3e80e11a868 100644
--- a/src/MNH/ch_isoropia.f90
+++ b/src/MNH/ch_isoropia.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2006-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$
-! MASDEV4_7 chimie 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !!   ########################
      MODULE MODI_CH_ISOROPIA
 !!   ########################
@@ -132,7 +127,7 @@ END MODULE MODI_CH_ISOROPIA
 !     AERSLD(09) - (NH4)4H(SO4)2(s)
 !
 !  5. [SCASI]
-!     CHARACTER*15 variable.
+!     CHARACTER(len=15) variable.
 !     Returns the subcase which the input corresponds to.
 !
 !  6. [OTHER]
diff --git a/src/MNH/ch_make_lookup.f90 b/src/MNH/ch_make_lookup.f90
index dfc9b592c7cd010170c0e298b38419a981a31ad0..aac6f60374547d6ea71d3c516754ed42b194b6af 100644
--- a/src/MNH/ch_make_lookup.f90
+++ b/src/MNH/ch_make_lookup.f90
@@ -84,13 +84,13 @@ REAL :: ZMAX = 30E3       ! MAXIMUM HEIGHT FOR WHICH J-VALUES WILL BE COMPUTED
 INTEGER, PARAMETER                    :: NJOUT = 21
 REAL, DIMENSION(NLEVEL,NJOUT)         :: JOUT
 REAL, DIMENSION(NLEVEL, NJOUT, NTIME) :: JDATA
-CHARACTER*40, DIMENSION(NJOUT)        :: JLABELOUT
+CHARACTER(len=40), DIMENSION(NJOUT)   :: JLABELOUT
 !
-CHARACTER*120 :: HEADDER
-REAL          :: UT
-INTEGER       :: ILU ! unit number for IO
-INTEGER       :: I, J, K, NJIO
-CHARACTER*40  :: YFMT = '(2F11.2,5E11.4/99(7E11.4/))'
+CHARACTER(len=120) :: HEADDER
+REAL               :: UT
+INTEGER            :: ILU ! unit number for IO
+INTEGER            :: I, J, K, NJIO
+CHARACTER(len=40)  :: YFMT = '(2F11.2,5E11.4/99(7E11.4/))'
 !
 ! NAMELIST for options
 NAMELIST /NAM_TUV/ ALAT, ALONG, IDATE, ALBNEW, DOBNEW
diff --git a/src/MNH/ch_model0d.f90 b/src/MNH/ch_model0d.f90
index fbff58f803bca28cbadd31c2389c8b635a3f9a7d..e93cb849380821c0c1e048459efa72d0f50a4465 100644
--- a/src/MNH/ch_model0d.f90
+++ b/src/MNH/ch_model0d.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-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.
@@ -94,7 +94,7 @@ USE MODE_MODELN_HANDLER
 !        -----------------
 IMPLICIT NONE
 !
-CHARACTER*256      :: YNAMELISTFILE = "CHCONTROL1.nam" !  namelist input file
+CHARACTER(len=256) :: YNAMELISTFILE = "CHCONTROL1.nam" !  namelist input file
 !
 ! reaction rates and auxiliary variables  
 TYPE(CCSTYPE), POINTER        :: TZK 
diff --git a/src/MNH/ch_read_vector.f90 b/src/MNH/ch_read_vector.f90
index 0d954de8b46543df3382129fef3da24371ff8324..c02e9d7365ead496279aced0278a4cd638545fa7 100644
--- a/src/MNH/ch_read_vector.f90
+++ b/src/MNH/ch_read_vector.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1999-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$
-! MASDEV4_7 chimie 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !!    ##########################
       MODULE MODI_CH_READ_VECTOR
 !!    ##########################
@@ -17,20 +12,13 @@ INTERFACE
 SUBROUTINE CH_READ_VECTOR(KEQ, HNAMES, PVAR, PDEFAULT, KIN, KOUT, KVERB)
 IMPLICIT NONE
 !!
-INTEGER,                       INTENT(IN) :: KEQ    
-					  ! number of variables to be defined
-CHARACTER*(*), DIMENSION(KEQ), INTENT(IN) :: HNAMES 
-					  ! names of the variables to be defined
-REAL,          DIMENSION(KEQ), INTENT(OUT):: PVAR
-					  ! value of the variable to be read
-REAL,                          INTENT(IN) :: PDEFAULT
-					  ! default value 
-INTEGER,                       INTENT(IN) :: KIN   
-					  ! I/O channel for file input
-INTEGER,                       INTENT(IN) :: KOUT
-					  ! I/O channel for printing
-INTEGER,                       INTENT(IN) :: KVERB   
-					  ! verbosity level
+INTEGER,                          INTENT(IN)  :: KEQ      ! number of variables to be defined
+CHARACTER(len=*), DIMENSION(KEQ), INTENT(IN)  :: HNAMES   ! names of the variables to be defined
+REAL,             DIMENSION(KEQ), INTENT(OUT) :: PVAR     ! value of the variable to be read
+REAL,                             INTENT(IN)  :: PDEFAULT ! default value
+INTEGER,                          INTENT(IN)  :: KIN      ! I/O channel for file input
+INTEGER,                          INTENT(IN)  :: KOUT     ! I/O channel for printing
+INTEGER,                          INTENT(IN)  :: KVERB    ! verbosity level
 END SUBROUTINE CH_READ_VECTOR
 !!
 END INTERFACE
@@ -90,20 +78,13 @@ IMPLICIT NONE
 !
 !*      0.1    declarations of arguments
 !
-INTEGER,                       INTENT(IN) :: KEQ    
-					  ! number of variables to be defined
-CHARACTER*(*), DIMENSION(KEQ), INTENT(IN) :: HNAMES 
-					  ! names of the variables to be defined
-REAL,          DIMENSION(KEQ), INTENT(OUT):: PVAR
-					  ! value of the variable to be read
-REAL,                          INTENT(IN) :: PDEFAULT
-					  ! default value 
-INTEGER,                       INTENT(IN) :: KIN   
-					  ! I/O channel for file input
-INTEGER,                       INTENT(IN) :: KOUT
-					  ! I/O channel for printing
-INTEGER,                       INTENT(IN) :: KVERB   
-					  ! verbosity level
+INTEGER,                          INTENT(IN)  :: KEQ      ! number of variables to be defined
+CHARACTER(len=*), DIMENSION(KEQ), INTENT(IN)  :: HNAMES   ! names of the variables to be defined
+REAL,             DIMENSION(KEQ), INTENT(OUT) :: PVAR     ! value of the variable to be read
+REAL,                             INTENT(IN)  :: PDEFAULT ! default value
+INTEGER,                          INTENT(IN)  :: KIN      ! I/O channel for file input
+INTEGER,                          INTENT(IN)  :: KOUT     ! I/O channel for printing
+INTEGER,                          INTENT(IN)  :: KVERB    ! verbosity level
 !
 !*      0.2    declarations of local variables
 !
diff --git a/src/MNH/ch_update_jvalues.f90 b/src/MNH/ch_update_jvalues.f90
index 257c6e07da298c97677704946ea4fd887ec72b06..f62d1d96eb657846610f5e8988627f9c417ee1c7 100644
--- a/src/MNH/ch_update_jvalues.f90
+++ b/src/MNH/ch_update_jvalues.f90
@@ -22,26 +22,26 @@
 USE MODD_CH_INIT_JVALUES, ONLY : JPJVMAX
 !
 IMPLICIT NONE
-INTEGER,                  INTENT(IN)   :: KLON     ! dimension I
-INTEGER,                  INTENT(IN)   :: KLAT     ! dimension J
-INTEGER,                  INTENT(IN)   :: KLEV     ! Number of vertical levels
-INTEGER,                  INTENT(IN)   :: KRR      ! Number of moist variables
-REAL,                     INTENT(IN)   :: PLAT0, PLON0
-REAL, DIMENSION(KLON,KLAT),      INTENT(IN) :: PZENITH, PALB_UV, PZS
-REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PZZ
-REAL, DIMENSION(KLON,KLAT,KLEV),      INTENT(IN) :: PRHODREF
-REAL, DIMENSION(KLON,KLAT,KLEV,KRR),  INTENT(IN) :: PRT
-INTEGER,                   INTENT(IN) :: KDAY, KMONTH, KYEAR ! current date
-REAL,                      INTENT(IN) :: PTIME    ! current time (s)
-INTEGER,                   INTENT(IN) :: KLUOUT             
-LOGICAL,                   INTENT(IN) :: OCH_TUV_ONLINE ! online/lookup table
-CHARACTER*4,               INTENT(IN) :: HCH_TUV_CLOUDS ! clouds and radiation
-REAL,                      INTENT(IN) :: PALBNEW  ! surface albedo
-REAL,                      INTENT(IN) :: PDOBNEW  ! ozone column dobson
-REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES    ! Tuv coefficients
-INTEGER,                   INTENT(IN)    :: KVERB      ! verbosity level
-INTEGER,                   INTENT(IN)    :: NIB,NIE,NJB,NJE,NIU,NJU   !  domain dim
-!!
+!
+INTEGER,                                INTENT(IN)    :: KLON                      ! dimension I
+INTEGER,                                INTENT(IN)    :: KLAT                      ! dimension J
+INTEGER,                                INTENT(IN)    :: KLEV                      ! Number of vertical levels
+INTEGER,                                INTENT(IN)    :: KRR                       ! Number of moist variables
+REAL,                                   INTENT(IN)    :: PLAT0, PLON0
+REAL, DIMENSION(KLON,KLAT),             INTENT(IN)    :: PZENITH, PALB_UV, PZS
+REAL, DIMENSION(KLON,KLAT,KLEV),        INTENT(IN)    :: PZZ
+REAL, DIMENSION(KLON,KLAT,KLEV),        INTENT(IN)    :: PRHODREF
+REAL, DIMENSION(KLON,KLAT,KLEV,KRR),    INTENT(IN)    :: PRT
+INTEGER,                                INTENT(IN)    :: KDAY, KMONTH, KYEAR       ! current date
+REAL,                                   INTENT(IN)    :: PTIME                     ! current time (s)
+INTEGER,                                INTENT(IN)    :: KLUOUT
+LOGICAL,                                INTENT(IN)    :: OCH_TUV_ONLINE            ! online/lookup table
+CHARACTER(len=4),                       INTENT(IN)    :: HCH_TUV_CLOUDS            ! clouds and radiation
+REAL,                                   INTENT(IN)    :: PALBNEW                   ! surface albedo
+REAL,                                   INTENT(IN)    :: PDOBNEW                   ! ozone column dobson
+REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES                  ! Tuv coefficients
+INTEGER,                                INTENT(IN)    :: KVERB                     ! verbosity level
+INTEGER,                                INTENT(IN)    :: NIB,NIE,NJB,NJE,NIU,NJU   !  domain dim
 !
 END SUBROUTINE CH_UPDATE_JVALUES
 !
@@ -108,25 +108,25 @@ USE MODD_PARAMETERS
 !!    ------------------
 IMPLICIT NONE
 
-INTEGER,                  INTENT(IN)   :: KLON     !NPROMA under CPG
-INTEGER,                  INTENT(IN)   :: KLAT     !NPROMA under CPG
-INTEGER,                  INTENT(IN)   :: KLEV     !Number of vertical levels
-INTEGER,                  INTENT(IN)   :: KRR      ! Number of moist variables
-REAL,                     INTENT(IN)   :: PLAT0, PLON0
-REAL, DIMENSION(KLON,KLAT),      INTENT(IN) :: PZENITH, PALB_UV, PZS
-REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PZZ
-REAL, DIMENSION(KLON,KLAT,KLEV), INTENT(IN) :: PRHODREF
-REAL, DIMENSION(KLON,KLAT,KLEV,KRR),  INTENT(IN) :: PRT
-INTEGER,                   INTENT(IN) :: KDAY, KMONTH, KYEAR ! current date
-REAL,                      INTENT(IN) :: PTIME    ! current time (s)
-INTEGER,                   INTENT(IN) :: KLUOUT             
-LOGICAL,                   INTENT(IN) :: OCH_TUV_ONLINE ! online/lookup table
-CHARACTER*4,               INTENT(IN) :: HCH_TUV_CLOUDS ! clouds and radiation
-REAL,                      INTENT(IN) :: PALBNEW  ! surface albedo
-REAL,                      INTENT(IN) :: PDOBNEW  ! ozone column dobson
-REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES    ! Tuv coefficients
-INTEGER,                   INTENT(IN)    :: KVERB      ! verbosity level
-INTEGER,                   INTENT(IN)    :: NIB,NIE,NJB,NJE,NIU,NJU   !  domain dim
+INTEGER,                                INTENT(IN)    :: KLON                      ! dimension I
+INTEGER,                                INTENT(IN)    :: KLAT                      ! dimension J
+INTEGER,                                INTENT(IN)    :: KLEV                      ! Number of vertical levels
+INTEGER,                                INTENT(IN)    :: KRR                       ! Number of moist variables
+REAL,                                   INTENT(IN)    :: PLAT0, PLON0
+REAL, DIMENSION(KLON,KLAT),             INTENT(IN)    :: PZENITH, PALB_UV, PZS
+REAL, DIMENSION(KLON,KLAT,KLEV),        INTENT(IN)    :: PZZ
+REAL, DIMENSION(KLON,KLAT,KLEV),        INTENT(IN)    :: PRHODREF
+REAL, DIMENSION(KLON,KLAT,KLEV,KRR),    INTENT(IN)    :: PRT
+INTEGER,                                INTENT(IN)    :: KDAY, KMONTH, KYEAR       ! current date
+REAL,                                   INTENT(IN)    :: PTIME                     ! current time (s)
+INTEGER,                                INTENT(IN)    :: KLUOUT
+LOGICAL,                                INTENT(IN)    :: OCH_TUV_ONLINE            ! online/lookup table
+CHARACTER(len=4),                       INTENT(IN)    :: HCH_TUV_CLOUDS            ! clouds and radiation
+REAL,                                   INTENT(IN)    :: PALBNEW                   ! surface albedo
+REAL,                                   INTENT(IN)    :: PDOBNEW                   ! ozone column dobson
+REAL,DIMENSION(KLON,KLAT,KLEV,JPJVMAX), INTENT(INOUT) :: PJVALUES                  ! Tuv coefficients
+INTEGER,                                INTENT(IN)    :: KVERB                     ! verbosity level
+INTEGER,                                INTENT(IN)    :: NIB,NIE,NJB,NJE,NIU,NJU   !  domain dim
 !!
 !!    LOCAL VARIABLES
 !!    ---------------
@@ -139,7 +139,7 @@ INTEGER       :: JJ                   ! loop counter
 REAL,DIMENSION(:,:),     ALLOCATABLE  :: ZJOUT1D ! dummy parameter
 !REAL,DIMENSION(:,:,:,:), ALLOCATABLE  :: ZJOUT3D ! dummy parameter
 REAL,DIMENSION(:,:,:,:), ALLOCATABLE  :: ZFCLD   ! cloud correction
-CHARACTER*40, DIMENSION(JPJVMAX)      :: YJLABELOUT ! names of J-reacts.
+CHARACTER(len=40), DIMENSION(JPJVMAX) :: YJLABELOUT ! names of J-reacts.
 !!
 REAL, DIMENSION(:), ALLOCATABLE       :: ZAZ
 REAL, DIMENSION(:,:,:), ALLOCATABLE   :: ZAZ3D, ZLWC3D
diff --git a/src/MNH/compute_entr_detr.f90 b/src/MNH/compute_entr_detr.f90
index da35fea05871eec70348a6e60de42ca8b85eef68..b003c68304cf06fbe4ea46b95511b79bda407fd6 100644
--- a/src/MNH/compute_entr_detr.f90
+++ b/src/MNH/compute_entr_detr.f90
@@ -26,7 +26,7 @@ INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physica
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
 LOGICAL,DIMENSION(:),   INTENT(IN)   :: OTEST ! test to see if updraft is running
 LOGICAL,DIMENSION(:),   INTENT(IN)   :: OTESTLCL !test of condensation 
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE ! frac_ice can be compute using
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE ! frac_ice can be compute using
                                               ! Temperature (T) or prescribed
                                               ! (Y)
 REAL, DIMENSION(:), INTENT(IN)      :: PFRAC_ICE ! fraction of ice
@@ -146,7 +146,7 @@ INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physica
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
 LOGICAL,DIMENSION(:),   INTENT(IN)   :: OTEST ! test to see if updraft is running
 LOGICAL,DIMENSION(:),   INTENT(IN)   :: OTESTLCL !test of condensation 
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE ! frac_ice can be compute using
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE ! frac_ice can be compute using
                                               ! Temperature (T) or prescribed
                                               ! (Y)
 REAL, DIMENSION(:), INTENT(IN)      :: PFRAC_ICE ! fraction of ice
diff --git a/src/MNH/compute_frac_ice.f90 b/src/MNH/compute_frac_ice.f90
index d7bfa581725a8bddafbb19d298c7633e70528a9a..b6eb94bc45c5975b596b519834bfd19c6ac5e7b6 100644
--- a/src/MNH/compute_frac_ice.f90
+++ b/src/MNH/compute_frac_ice.f90
@@ -11,7 +11,7 @@ INTERFACE COMPUTE_FRAC_ICE
 !
     SUBROUTINE COMPUTE_FRAC_ICE3D(HFRAC_ICE,PFRAC_ICE,PT)
 !
-CHARACTER*1           , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),       INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PT
 REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE                                             
 !
@@ -19,7 +19,7 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE
 !
    SUBROUTINE COMPUTE_FRAC_ICE2D(HFRAC_ICE,PFRAC_ICE,PT)
 !
-CHARACTER*1           , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),     INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(IN) :: PT
 REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE                                             
 !
@@ -27,7 +27,7 @@ REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE
 
    SUBROUTINE COMPUTE_FRAC_ICE1D(HFRAC_ICE,PFRAC_ICE,PT)
 !
-CHARACTER*1           , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),   INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:), INTENT(IN) :: PT
 REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE                                             
 
@@ -56,7 +56,7 @@ INTERFACE
 !
     SUBROUTINE COMPUTE_FRAC_ICE3D(HFRAC_ICE,PFRAC_ICE,PT)
 !
-CHARACTER*1           , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),       INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PT
 REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE                                             
 !
@@ -72,7 +72,7 @@ INTERFACE
 !
     SUBROUTINE COMPUTE_FRAC_ICE1D(HFRAC_ICE,PFRAC_ICE,PT)
 !
-CHARACTER*1       , INTENT(IN)    :: HFRAC_ICE
+CHARACTER(len=1),   INTENT(IN)    :: HFRAC_ICE
 REAL, DIMENSION(:), INTENT(IN)    :: PT
 REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE
 !
@@ -124,7 +124,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1           , INTENT(IN)    :: HFRAC_ICE ! scheme to use
+CHARACTER(len=1),       INTENT(IN)    :: HFRAC_ICE ! scheme to use
 REAL, DIMENSION(:,:,:), INTENT(IN)    :: PT        ! Temperature
 REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE ! Ice fraction (1 for ice only, 0 for liquid only)
 !-------------------------------------------------------------------------
@@ -194,7 +194,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1         , INTENT(IN)    :: HFRAC_ICE ! scheme to use
+CHARACTER(len=1),     INTENT(IN)    :: HFRAC_ICE ! scheme to use
 REAL, DIMENSION(:,:), INTENT(IN)    :: PT        ! Temperature
 REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE ! Ice fraction (1 for ice only, 0 for liquid only)
 !-------------------------------------------------------------------------
@@ -266,7 +266,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1       , INTENT(IN)    :: HFRAC_ICE  ! scheme to use
+CHARACTER(len=1),   INTENT(IN)    :: HFRAC_ICE  ! scheme to use
 REAL, DIMENSION(:), INTENT(IN)    :: PT         ! temperature
 REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE  ! Ice fraction (1 for ice only, 0 for liquid only)
 !
diff --git a/src/MNH/compute_updraft.f90 b/src/MNH/compute_updraft.f90
index 5b69902a2f4151f30533ec5b9b487c9a651063ab..69985ecdb2976aa04462ab124cddfe561f38bffe 100644
--- a/src/MNH/compute_updraft.f90
+++ b/src/MNH/compute_updraft.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2004-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.
+!-----------------------------------------------------------------
 !     ######spl
      MODULE MODI_COMPUTE_UPDRAFT
 !    ###########################
@@ -34,7 +35,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
@@ -161,7 +162,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
diff --git a/src/MNH/compute_updraft_hrio.f90 b/src/MNH/compute_updraft_hrio.f90
index 8086333465e5cd97bfc66dacda454c363555e725..adccc8ca9fe3a2469fb42f78e4b15aa2268aef7a 100644
--- a/src/MNH/compute_updraft_hrio.f90
+++ b/src/MNH/compute_updraft_hrio.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2004-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.
@@ -37,7 +37,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
@@ -171,7 +171,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
diff --git a/src/MNH/compute_updraft_raha.f90 b/src/MNH/compute_updraft_raha.f90
index c685be9a979beea9c8af7b94e3454c2271ca0c72..1cf8c32b22ea103beb7c41b2f79a11e7abb549d6 100644
--- a/src/MNH/compute_updraft_raha.f90
+++ b/src/MNH/compute_updraft_raha.f90
@@ -1,8 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2012-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.
-!     ######spl
+!-----------------------------------------------------------------
 !     ######spl
      MODULE MODI_COMPUTE_UPDRAFT_RAHA
 !    ###########################
@@ -34,7 +34,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
@@ -151,7 +151,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
diff --git a/src/MNH/compute_updraft_rhcj10.f90 b/src/MNH/compute_updraft_rhcj10.f90
index 554dc54f9d8f56fab536ff264a5a989b1d983f23..a918d05b0021aade1fb26a3458e62a5d7ca027d6 100644
--- a/src/MNH/compute_updraft_rhcj10.f90
+++ b/src/MNH/compute_updraft_rhcj10.f90
@@ -1,8 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2012-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.
-!     ######spl
+!-----------------------------------------------------------------
 !     ######spl
      MODULE MODI_COMPUTE_UPDRAFT_RHCJ10
 !    ###########################
@@ -35,7 +35,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
@@ -152,7 +152,7 @@ INTEGER,                INTENT(IN)   :: KKB          ! near ground physical inde
 INTEGER,                INTENT(IN)   :: KKE          ! uppest atmosphere physical index
 INTEGER,                INTENT(IN)   :: KKU          ! uppest atmosphere array index
 INTEGER,                INTENT(IN)   :: KKL          ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN) :: OENTR_DETR! flag to recompute entrainment, detrainment and mass flux
 LOGICAL,                INTENT(IN) :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
diff --git a/src/MNH/condens.f90 b/src/MNH/condens.f90
index 6bf0e7354cbed9f49808a95d706ff31c15991047..899fe632a376f91856bffcfacc00286d0567d3f5 100644
--- a/src/MNH/condens.f90
+++ b/src/MNH/condens.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1981-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$
-! MASDEV4_7 microph 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ######spl
       MODULE MODI_CONDENS
 !     ###################
@@ -16,7 +11,7 @@ INTERFACE
 !
      SUBROUTINE CONDENS(HTURBDIM, PQ1, PN, PRC, PSRC)
 
-CHARACTER*4,             INTENT(IN)  ::   HTURBDIM ! dimensionality of the
+CHARACTER(len=4),        INTENT(IN)  ::   HTURBDIM ! dimensionality of the
                                                    ! turbulence scheme
 REAL, DIMENSION(:,:,:),  INTENT(IN)  ::   PQ1      ! Saturation
 REAL, DIMENSION(:,:,:),  INTENT(OUT) ::   PN       ! Cloud fraction
@@ -84,6 +79,7 @@ END MODULE MODI_CONDENS
 !!      Modifications: March 2, 1995 (J.M. Carriere) Fortran 90
 !!                                   and doctorization
 !!      Modifications: September 12, 1996 (J. Stein) tabulated version
+!  P. Wautelet 19/04/2019: constant variables are now declared as PARAMETERS
 !!
 !! ----------------------------------------------------------------------
 !
@@ -95,7 +91,7 @@ IMPLICIT NONE
 !
 !*       0.1 declarations of arguments and result
 !
-CHARACTER*4,             INTENT(IN)  ::   HTURBDIM ! dimensionality of the
+CHARACTER(len=4),        INTENT(IN)  ::   HTURBDIM ! dimensionality of the
                                                    ! turbulence scheme
 REAL, DIMENSION(:,:,:),  INTENT(IN)  ::   PQ1      ! Saturation
 REAL, DIMENSION(:,:,:),  INTENT(OUT) ::   PN       ! Cloud fraction
@@ -108,7 +104,7 @@ REAL, DIMENSION(:,:,:),  INTENT(OUT) ::   PSRC     ! Second-order flux
 !
 INTEGER           :: JR1,JR2,JR3, IRM1,IRM2,IRM3
 !
-REAL, DIMENSION(-22:11) :: ZN_1D = (/                                   &
+REAL, DIMENSION(-22:11), PARAMETER :: ZN_1D = (/                        &
        0.           ,  0.           ,  1.7225742E-05,  0.275373E-04 ,   &
        4.5657158E-05,  0.748634E-04 ,  1.2344122E-04,  0.203788E-03 ,   &
        3.3539534E-04,  0.553310E-03 ,  9.1189146E-04,  0.150353E-02 ,   &
@@ -119,7 +115,7 @@ REAL, DIMENSION(-22:11) :: ZN_1D = (/                                   &
        0.9986521    ,  0.999768E+00 ,  0.9999684    ,  0.9999997    ,   &
        1.0000000    ,  1.000000      /)
 !
-REAL, DIMENSION(-22:11) :: ZRC_1D = (/                                   &
+REAL, DIMENSION(-22:11), PARAMETER :: ZRC_1D = (/                        &
        0.           ,  0.           ,  1.1461278E-05,  0.275279E-04 ,    &
        4.3084903E-05,  0.747532E-04 ,  1.2315845E-04,  0.201069E-03 ,    &
        3.3593364E-04,  0.551618E-03 ,  9.1182487E-04,  0.150296E-02 ,    &
@@ -130,7 +126,7 @@ REAL, DIMENSION(-22:11) :: ZRC_1D = (/                                   &
        3.0003829    ,  0.350006E+01 ,  4.0000072    ,  0.450000E+01 ,    &
        5.0000000    ,  5.500000     /)
 !
-REAL, DIMENSION(-22:11) :: ZSRC_1D =(/                                   &
+REAL, DIMENSION(-22:11), PARAMETER :: ZSRC_1D =(/                        &
        0.           ,  0.           ,  2.0094444E-04,   0.316670E-03,    &
        4.9965648E-04,  0.785956E-03 ,  1.2341294E-03,   0.193327E-02,    &
        3.0190963E-03,  0.470144E-02 ,  7.2950651E-03,   0.112759E-01,    &
@@ -141,7 +137,7 @@ REAL, DIMENSION(-22:11) :: ZSRC_1D =(/                                   &
        0.9986521    ,  0.999768E+00 ,  0.9999684    ,   0.999997E+00,    &
        1.0000000    ,  1.000000     /)
 !
-REAL, DIMENSION(-22:11) :: ZN_3D = (/                                   &
+REAL, DIMENSION(-22:11), PARAMETER :: ZN_3D = (/                        &
        0.           ,  0.           ,  0.           ,  0.           ,   &
        0.           ,  0.           ,  0.           ,  0.           ,   &
        0.           ,  0.           ,  0.           ,  0.298023E-07 ,   &
@@ -152,7 +148,7 @@ REAL, DIMENSION(-22:11) :: ZN_3D = (/                                   &
        0.9986521    ,  0.999768E+00 ,  0.9999684    ,  0.9999997    ,   &
        1.0000000    ,  1.000000      /)
 !
-REAL, DIMENSION(-22:11) :: ZRC_3D = (/                                   &
+REAL, DIMENSION(-22:11), PARAMETER :: ZRC_3D = (/                        &
        0.           ,  0.           ,  0.           ,  0.           ,    &
        0.           ,  0.           ,  0.           ,  0.           ,    &
        0.           ,  0.           ,  0.           ,  0.           ,    &
@@ -163,7 +159,7 @@ REAL, DIMENSION(-22:11) :: ZRC_3D = (/                                   &
        3.0003829    ,  0.350006E+01 ,  4.0000072    ,  0.450000E+01 ,    &
        5.0000000    ,  5.500000     /)
 !
-REAL, DIMENSION(-22:11) :: ZSRC_3D =(/                                   &
+REAL, DIMENSION(-22:11), PARAMETER :: ZSRC_3D =(/                        &
        0.           ,  0.           ,  0.           ,   0.          ,    &
        0.           ,  0.           ,  0.           ,   0.          ,    &
        0.           ,  0.           ,  0.           ,   0.298023E-07,    &
diff --git a/src/MNH/condensation.f90 b/src/MNH/condensation.f90
index d23e78608e4583e975197925995125ab4f6ef073..c57ce2ba4748e254dca80ee6e64dcb90312c1f1b 100644
--- a/src/MNH/condensation.f90
+++ b/src/MNH/condensation.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-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.
@@ -23,7 +23,7 @@ INTEGER,                      INTENT(IN)    :: KJE    ! value of the last  point
 INTEGER,                      INTENT(IN)    :: KKB    ! value of the first point in z
 INTEGER,                      INTENT(IN)    :: KKE    ! value of the last  point in z
 INTEGER,                      INTENT(IN)    :: KKL    ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,                  INTENT(IN)    :: HFRAC_ICE
+CHARACTER(len=1),             INTENT(IN)    :: HFRAC_ICE
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PPABS  ! pressure (Pa)
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PZZ    ! height of model levels (m)
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(INOUT) :: PT     ! grid scale T  (K)
@@ -149,7 +149,7 @@ INTEGER,                      INTENT(IN)    :: KJE    ! value of the last  point
 INTEGER,                      INTENT(IN)    :: KKB    ! value of the first point in z
 INTEGER,                      INTENT(IN)    :: KKE    ! value of the last  point in z
 INTEGER,                      INTENT(IN)    :: KKL    ! +1 if grid goes from ground to atmosphere top, -1 otherwise
-CHARACTER*1,                  INTENT(IN)    :: HFRAC_ICE
+CHARACTER(len=1),             INTENT(IN)    :: HFRAC_ICE
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PPABS  ! pressure (Pa)
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(IN)    :: PZZ    ! height of model levels (m)
 REAL, DIMENSION(KIU,KJU,KKU), INTENT(INOUT) :: PT     ! grid scale T  (K)
diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90
index 93b355bd51876b3a7c9ae170af87d4fb8d0bb0af..ace7bab440cc0d6e85fb034a2189e1a086042caa 100644
--- a/src/MNH/diag.f90
+++ b/src/MNH/diag.f90
@@ -181,10 +181,8 @@ CHARACTER (LEN=28), DIMENSION(1) :: YINIFILEPGD ! names of the INPUT FM-file
 CHARACTER (LEN=5)  :: YSUFFIX   ! character string for the OUTPUT FM-file number
 CHARACTER (LEN=4)  :: YRAD      ! initial flag to call to radiation schemes
 CHARACTER (LEN=4)  :: YDCONV    ! initial flag to call to deep convection schemes
-CHARACTER (LEN=4)  :: YSCONV    ! initial flag to call to shallow convection schemes
 CHARACTER (LEN=4)  :: YTURB     ! initial flag to call to turbulence schemes
-CHARACTER (LEN=40) :: YFMT,YFMT2! format for cpu analysis printing
-INTEGER  :: IRESP               ! return code in FM routines
+! CHARACTER (LEN=40) :: YFMT,YFMT2! format for cpu analysis printing
 INTEGER  :: ILUOUT0             ! Logical unit number for the output listing
 REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME0, ZTIME1, ZTIME2, ZRAD, ZDCONV, ZSHADOWS, ZGROUND, &
                                     ZTRACER, ZDRAG, ZTURB, ZMAFL, ZCHEM, ZTIME_BU ! CPU times
@@ -591,7 +589,6 @@ IF (CTURB /= 'NONE')    XRTKES(:,:,:) = 0.
 !
 YTURB  = CTURB
 YDCONV = CDCONV
-YSCONV = CSCONV
 YRAD   = CRAD
 !
 !* turbulence scheme
diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90
index d2a5b05e6522074b2500c6902501bc488b29c4e7..b7686962ca5cf08e65b81f7a756e6901aea622be 100644
--- a/src/MNH/flash_geom_elec.f90
+++ b/src/MNH/flash_geom_elec.f90
@@ -96,6 +96,7 @@ END MODULE MODI_FLASH_GEOM_ELEC_n
 !  P. Wautelet 22/01/2019: use standard FLUSH statement instead of non standard intrinsics!!
 !  P. Wautelet 22/02/2019: use MOD intrinsics with same kind for all arguments (to respect Fortran standard)
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 19/04/2019: use modd_precision kinds
 !-------------------------------------------------------------------------------
 !
 !*      0.      DECLARATIONS
@@ -2067,6 +2068,8 @@ END SUBROUTINE CHARGE_POCKET
 !*      0.      DECLARATIONS
 !               ------------
 !
+use modd_precision, only: MNHINT64, MNHINT64_MPI
+
 IMPLICIT NONE
 !
 !*      0.1     declaration of dummy arguments
@@ -2086,10 +2089,10 @@ LOGICAL :: GRANDOM           ! T = the gridpoints are chosen randomly
 INTEGER, DIMENSION(NPROC) :: INBPT_PROC
 REAL, DIMENSION(:), ALLOCATABLE :: ZAUX
 !
-INTEGER*8, DIMENSION(:), ALLOCATABLE :: I8VECT , I8VECT_LL 
-INTEGER  , DIMENSION(:), ALLOCATABLE :: IRANK  , IRANK_LL , IORDER_LL
-INTEGER  :: JI,JJ,JK,JIL , ICHOICE,IPOINT
-INTEGER, DIMENSION(NPROC+1) :: IDISPL
+INTEGER                                           :: JI,JJ,JK,JIL , ICHOICE,IPOINT
+INTEGER,                DIMENSION(NPROC+1)        :: IDISPL
+INTEGER(kind=MNHINT64), DIMENSION(:), ALLOCATABLE :: I8VECT , I8VECT_LL
+INTEGER,                DIMENSION(:), ALLOCATABLE :: IRANK  , IRANK_LL , IORDER_LL
 !
 !
 !
@@ -2175,8 +2178,8 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1)
         ALLOCATE(I8VECT_LL(IPT_DIST_GLOB))
         ALLOCATE(IRANK_LL(IPT_DIST_GLOB))
         ALLOCATE(IORDER_LL(IPT_DIST_GLOB))
-        CALL MPI_ALLGATHERV(I8VECT,IPT_DIST, MPI_INTEGER8,I8VECT_LL , &
-                        INBPT_PROC, IDISPL, MPI_INTEGER8, NMNH_COMM_WORLD, IERR)
+        CALL MPI_ALLGATHERV(I8VECT,IPT_DIST, MNHINT64_MPI,I8VECT_LL , &
+                        INBPT_PROC, IDISPL, MNHINT64_MPI, NMNH_COMM_WORLD, IERR)
         CALL MPI_ALLGATHERV(IRANK,IPT_DIST, MPI_INTEGER,IRANK_LL , &
                         INBPT_PROC, IDISPL, MPI_INTEGER, NMNH_COMM_WORLD, IERR)
         CALL N8QUICK_SORT(I8VECT_LL, IORDER_LL)
@@ -2198,7 +2201,7 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1)
                     !print*,"OUT => I8VECT_LL(ICHOICE)=",I8VECT_ll(ICHOICE),JI,JJ,JK,ICHOICE
                     ZFLASH(JI,JJ,JK,IL) = 2.
                  END IF
-                 I8VECT_LL(ICHOICE) = 0.
+                 I8VECT_LL(ICHOICE) = 0
               ENDIF
            END DO
         END DO
@@ -2622,9 +2625,11 @@ RECURSIVE SUBROUTINE N8QUICK_SORT(PLIST, KORDER)
 ! Modified by Alan Miller to include an associated integer array which gives
 ! the positions of the elements in the original order.
 !
+use modd_precision, only: MNHINT64
+
 IMPLICIT NONE
 !
-INTEGER*8, DIMENSION (:), INTENT(INOUT)  :: PLIST
+INTEGER(kind=MNHINT64), DIMENSION (:), INTENT(INOUT)  :: PLIST
 INTEGER, DIMENSION (:), INTENT(OUT)  :: KORDER
 !
 ! Local variable
@@ -2642,13 +2647,18 @@ END SUBROUTINE N8QUICK_SORT
 !
 RECURSIVE SUBROUTINE N8QUICK_SORT_1(KLEFT_END, KRIGHT_END, PLIST1, KORDER1)
 
-INTEGER, INTENT(IN) :: KLEFT_END, KRIGHT_END
-INTEGER*8, DIMENSION (:), INTENT(INOUT)  :: PLIST1
-INTEGER, DIMENSION (:), INTENT(INOUT)  :: KORDER1
+use modd_precision, only: MNHINT64
+
+implicit none
+
+INTEGER,                               INTENT(IN)    :: KLEFT_END, KRIGHT_END
+INTEGER(kind=MNHINT64), DIMENSION (:), INTENT(INOUT) :: PLIST1
+INTEGER,                DIMENSION (:), INTENT(INOUT) :: KORDER1
 !     Local variables
-INTEGER             :: JI, JJ, ITEMP
-INTEGER*8                :: ZREF, ZTEMP
-INTEGER, PARAMETER  :: IMAX_SIMPLE_SORT_SIZE = 6
+INTEGER, PARAMETER     :: IMAX_SIMPLE_SORT_SIZE = 6
+
+INTEGER                :: JI, JJ, ITEMP
+INTEGER(kind=MNHINT64) :: ZREF, ZTEMP
 
 IF (KRIGHT_END < KLEFT_END + IMAX_SIMPLE_SORT_SIZE) THEN
   ! Use interchange sort for small PLISTs
@@ -2691,8 +2701,8 @@ ELSE
     END IF
   END DO
 
-  IF (KLEFT_END < JJ) CALL N8QUICK_SORT_1(KLEFT_END, JJ, PLIST1, KORDER1)
-  IF (JI < KRIGHT_END) CALL N8QUICK_SORT_1(JI, KRIGHT_END,PLIST1,KORDER1)
+  IF ( KLEFT_END < JJ )         CALL N8QUICK_SORT_1( KLEFT_END, JJ,         PLIST1, KORDER1 )
+  IF ( JI        < KRIGHT_END ) CALL N8QUICK_SORT_1( JI,        KRIGHT_END, PLIST1, KORDER1 )
 END IF
 
 END SUBROUTINE N8QUICK_SORT_1
@@ -2701,12 +2711,16 @@ END SUBROUTINE N8QUICK_SORT_1
 !
 SUBROUTINE N8INTERCHANGE_SORT(KLEFT_END, KRIGHT_END, PLIST2, KORDER2)
 
-INTEGER, INTENT(IN) :: KLEFT_END, KRIGHT_END
-INTEGER*8, DIMENSION (:), INTENT(INOUT)  :: PLIST2
-INTEGER, DIMENSION (:), INTENT(INOUT)  :: KORDER2
+use modd_precision, only: MNHINT64
+
+implicit none
+
+INTEGER,                              INTENT(IN)    :: KLEFT_END, KRIGHT_END
+INTEGER(kind=MNHINT64), DIMENSION(:), INTENT(INOUT) :: PLIST2
+INTEGER,                DIMENSION(:), INTENT(INOUT) :: KORDER2
 !     Local variables
-INTEGER             :: JI, JJ, ITEMP
-INTEGER*8                :: ZTEMP
+INTEGER                :: JI, JJ, ITEMP
+INTEGER(kind=MNHINT64) :: ZTEMP
 
 ! boucle sur tous les points
 DO JI = KLEFT_END, KRIGHT_END - 1
@@ -2738,10 +2752,12 @@ END SUBROUTINE N8INTERCHANGE_SORT
 !-------------------------------------------------------------------------------
   SUBROUTINE MNH_RANDOM_NUMBER(ZRANDOM)
 
-    REAL          :: ZRANDOM
-    INTEGER ,SAVE :: NSEED_MNH = 26032012
+    use modd_precision, only: MNHINT32
+
+    REAL                         :: ZRANDOM
+    INTEGER(kind=MNHINT32), SAVE :: NSEED_MNH = 26032012_MNHINT32
 
-    ZRANDOM = r8_uniform_01 (NSEED_MNH)
+    ZRANDOM = real( r8_uniform_01( NSEED_MNH ), kind(ZRANDOM) )
 
   END SUBROUTINE MNH_RANDOM_NUMBER
 
@@ -2820,37 +2836,39 @@ END SUBROUTINE N8INTERCHANGE_SORT
     !
     !  Parameters:
     !
-    !    Input/output, integer ( kind = 4 ) SEED, the "seed" value, which should
+    !    Input/output, integer ( kind = MNHINT32 ) SEED, the "seed" value, which should
     !    NOT be 0. On output, SEED has been updated.
     !
-    !    Output, real ( kind = 8 ) R8_UNIFORM_01, a new pseudorandom variate,
+    !    Output, real ( kind = MNHREAL64 ) R8_UNIFORM_01, a new pseudorandom variate,
     !    strictly between 0 and 1.
     !
-    use mode_msg
+    use modd_precision, only: MNHINT32, MNHREAL64
+
+    implicit none
 
-    IMPLICIT NONE
+    integer(kind = MNHINT32), intent(inout) :: seed
+    real(kind=MNHREAL64)                    :: r8_uniform_01
 
-    INTEGER ( kind = 4 ), PARAMETER :: i4_huge = 2147483647
-    INTEGER ( kind = 4 ) k
-    REAL   r8_uniform_01
-    INTEGER ( kind = 4 ) seed
+    integer(kind = MNHINT32), parameter :: i4_huge = 2147483647_MNHINT32
 
-    IF ( seed == 0 ) THEN
+    integer(kind = MNHINT32) :: k
+
+    if ( seed == 0_MNHINT32 ) THEN
       call Print_msg( NVERB_FATAL, 'GEN', 'r8_uniform_01', 'seed dummy argument must be different of 0' )
-    END IF
+    end if
 
-    k = seed / 127773
+    k = seed / 127773_MNHINT32
 
-    seed = 16807 * ( seed - k * 127773 ) - k * 2836
+    seed = 16807_MNHINT32 * ( seed - k * 127773_MNHINT32 ) - k * 2836_MNHINT32
 
-    IF ( seed < 0 ) THEN
+    if ( seed < 0_MNHINT32 ) then
        seed = seed + i4_huge
-    END IF
+    end if
 
-    r8_uniform_01 = REAL ( seed ) * 4.656612875D-10
+    r8_uniform_01 = real(seed) * 4.656612875d-10
 
-    RETURN
-  END FUNCTION r8_uniform_01
+    return
+  end function r8_uniform_01
 !
 END SUBROUTINE FLASH_GEOM_ELEC_n
 !
diff --git a/src/MNH/flat_invz.f90 b/src/MNH/flat_invz.f90
index b7b38a84621ae4f99a90aba6f437f0b71b6b6f78..2d5febdf09b89f3b595a6db31d0f78ddb3384d8d 100644
--- a/src/MNH/flat_invz.f90
+++ b/src/MNH/flat_invz.f90
@@ -127,6 +127,7 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,   &
   !!      Modification   Lugato, Guivarch (June 1998) Parallelisation
   !!                     Escobar, Stein   (July 2000) optimisation
 !  P. Wautelet 28/03/2019: use MNHTIME for time measurement variables
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
   !-------------------------------------------------------------------------------
   !
   !*       0.    DECLARATIONS
@@ -140,7 +141,7 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,   &
   USE MODD_ARGSLIST_ll, ONLY : LIST_ll
   !JUAN Z_SPLI
   USE MODE_SPLITTINGZ_ll 
-  USE MODD_VAR_ll, ONLY : IP , NTRANS_COM
+!   USE MODD_VAR_ll, ONLY : IP , NTRANS_COM
   USE MODD_CONFZ , ONLY : NZ_SPLITTING ! for debug IZ=1=flat_inv;  IZ=2=flat_invz ;  IZ=1+2=the two
   USE MODD_TIMEZ , ONLY : TIMEZ
   USE MODE_MNH_TIMING
@@ -206,16 +207,12 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,   &
   INTEGER :: IKB          ! indice K for the first inner mass point along z
   INTEGER :: IKE          ! indice K for the last inner mass point along z
   INTEGER :: IKU          ! size of the arrays along z
-  INTEGER :: IKMAX        ! number of inner mass points along the z direction
   !
   REAL :: ZDXM2,ZDYM2     ! respectively equal to PDXHATM*PDXHATM 
   ! and PDYHATM*PDYHATM                         
   INTEGER :: JI,JJ,JK     ! loop indexes along x, y, z respectively
   !
   !
-  INTEGER :: IIE_INT,IJE_INT   ! highest indice I  and J values for the x y modes.
-  ! They  depend on the l.b.c. !
-  !
   INTEGER :: ILOTX,ILOTY ! number of data vectors along x, y resp. computed 
   ! in parallel during the FFT process 
   !
@@ -261,7 +258,7 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,   &
   !
   !
   !
-  INTEGER :: IH   ! HALO to use 
+!   INTEGER :: IH   ! HALO to use
   INTEGER :: II_B ,IJ_B ,IK_B  ! dimensions of B  slices
   INTEGER :: II_SXP1_YP2_Z,IJ_SXP1_YP2_Z,IK_SXP1_YP2_Z ! dimensions of SXP1_YP2_Z  slices
   INTEGER :: II_SXP2_YP1_Z,IJ_SXP2_YP1_Z,IK_SXP2_YP1_Z ! dimensions of SXP2_YP1_Z slices
@@ -278,7 +275,6 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,   &
 
   REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK_SX_YP2_ZP1  ! work array for SX_YP2_ZP1 FFT
   REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK_SXP2_Y_ZP1  ! work array for SXP2_Y_ZP1 FFT
-  REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWORK_SXP2_Y_ZP1R ! work array for SXP2_Y_ZP1 FFT
   REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_SXP2_Y_ZP1T  ! array in SXP2_Y_ZP1T slices distribution transpose
   REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_SXP2_Y_ZP1RT ! array in SXP2_Y_ZP1T slices distribution transpose
   REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAF_B     ! work array in  B slices for expand PAF
@@ -293,11 +289,8 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,   &
   REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZBAND_SXP2_YP1_ZR
   REAL, DIMENSION(:,:)  , ALLOCATABLE :: ZBETX_SXP2_YP1_Z
   !
-  ! UPDATE HALO --> pour voir si ca marche
-  TYPE(LIST_ll), POINTER :: TZFIELDS_ll   ! list of fields to exchange
-  !
   INTEGER                            :: IIBI,IJBI,IIEI,IJEI
-  INTEGER                            :: IERROR
+!   INTEGER                            :: IERROR
   !JUAN
   !-------------------------------------------------------------------------------
   !
@@ -316,7 +309,6 @@ SUBROUTINE FLAT_INVZ(HLBCX,HLBCY,PDXHATM,PDYHATM,PRHOM,PAF,PBF,PCF,   &
   IKU=SIZE(PY,3)
   IKB=1+JPVEXT
   IKE=IKU - JPVEXT
-  IKMAX=IKE-IKB+1
   !
   !
   IF ( IAND(NZ_SPLITTING,1) > 0 ) THEN 
diff --git a/src/MNH/goto_model_surfex_mnh.f90 b/src/MNH/goto_model_surfex_mnh.f90
index e96c9c8a18827196d7be92f5f4a766e0da0856ce..a87028ed193fe1c17d41459bc39a46b5983f6c40 100644
--- a/src/MNH/goto_model_surfex_mnh.f90
+++ b/src/MNH/goto_model_surfex_mnh.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2015-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: /home/cvsroot/MNH-VX-Y-Z/src/MNH/goto_model_surfex_mnh.f90
-!-----------------------------------------------------------------
 !#######################
 MODULE MODI_GOTO_MODEL_SURFEX_MNH
   !#######################
@@ -128,7 +124,7 @@ INTEGER,                         INTENT(OUT)    :: KINFO_ll
 !
 !INTEGER :: IINFO_ll ! return code of // routines
 INTEGER :: IMI ! return code of // routines
-CHARACTER*1 :: HSPLIT
+CHARACTER(len=1) :: HSPLIT
 !
 !------------------------------------------------------------------------------
 !
diff --git a/src/MNH/ice4_tendencies.f90 b/src/MNH/ice4_tendencies.f90
index 099ad15be63663af96c89ec066073f6a979dadf9..3fafb4588fb7542f2197bf01ccfd1c2f55e936b5 100644
--- a/src/MNH/ice4_tendencies.f90
+++ b/src/MNH/ice4_tendencies.f90
@@ -2,6 +2,7 @@
 !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.
+!-----------------------------------------------------------------
 MODULE MODI_ICE4_TENDENCIES
 INTERFACE
 SUBROUTINE ICE4_TENDENCIES(KSIZE, KIB, KIE, KIT, KJB, KJE, KJT, KKB, KKE, KKT, KKL, &
@@ -31,10 +32,10 @@ INTEGER,                      INTENT(IN)    :: KRR
 LOGICAL,                      INTENT(IN)    :: ODSOFT
 LOGICAL, DIMENSION(KSIZE),    INTENT(IN)    :: ODCOMPUTE
 LOGICAL,                      INTENT(IN)    :: OWARM
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RC_RR_ACCR
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RR_EVAP
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RC_RR_ACCR
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RR_EVAP
 CHARACTER(len=4),             INTENT(IN)    :: HSUBG_AUCV_RC
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_PR_PDF ! pdf for subgrid precipitation
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_PR_PDF ! pdf for subgrid precipitation
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
@@ -201,10 +202,10 @@ INTEGER,                      INTENT(IN)    :: KRR
 LOGICAL,                      INTENT(IN)    :: ODSOFT
 LOGICAL, DIMENSION(KSIZE),    INTENT(IN)    :: ODCOMPUTE
 LOGICAL,                      INTENT(IN)    :: OWARM
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RC_RR_ACCR
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RR_EVAP
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RC_RR_ACCR
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RR_EVAP
 CHARACTER(len=4),             INTENT(IN)    :: HSUBG_AUCV_RC
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_PR_PDF ! pdf for subgrid precipitation
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_PR_PDF ! pdf for subgrid precipitation
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PEXN
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
diff --git a/src/MNH/ice4_warm.f90 b/src/MNH/ice4_warm.f90
index 74728719dd07f7cde2d9f858bff14e0ef0a37588..a7a20b82a9aa0d69251534a45bb567561e43a14d 100644
--- a/src/MNH/ice4_warm.f90
+++ b/src/MNH/ice4_warm.f90
@@ -2,6 +2,7 @@
 !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.
+!-----------------------------------------------------------------
 MODULE MODI_ICE4_WARM
 INTERFACE
 SUBROUTINE ICE4_WARM(KSIZE, LDSOFT, LDCOMPUTE, HSUBG_RC_RR_ACCR, HSUBG_RR_EVAP, &
@@ -16,8 +17,8 @@ IMPLICIT NONE
 INTEGER,                      INTENT(IN)    :: KSIZE
 LOGICAL,                      INTENT(IN)    :: LDSOFT
 LOGICAL, DIMENSION(KSIZE),    INTENT(IN)    :: LDCOMPUTE
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RR_EVAP ! subgrid rr evaporation
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RR_EVAP ! subgrid rr evaporation
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
@@ -91,8 +92,8 @@ IMPLICIT NONE
 INTEGER,                      INTENT(IN)    :: KSIZE
 LOGICAL,                      INTENT(IN)    :: LDSOFT
 LOGICAL, DIMENSION(KSIZE),    INTENT(IN)    :: LDCOMPUTE
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion
-CHARACTER*80,                 INTENT(IN)    :: HSUBG_RR_EVAP ! subgrid rr evaporation
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RC_RR_ACCR ! subgrid rc-rr accretion
+CHARACTER(len=80),            INTENT(IN)    :: HSUBG_RR_EVAP ! subgrid rr evaporation
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PRHODREF ! Reference density
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PLVFACT
 REAL, DIMENSION(KSIZE),       INTENT(IN)    :: PT       ! Temperature
@@ -132,6 +133,7 @@ REAL, DIMENSION(SIZE(PRHODREF))    :: ZZW2, ZZW3, ZZW4
 REAL, DIMENSION(SIZE(PRHODREF))    :: ZUSW ! Undersaturation over water
 REAL, DIMENSION(SIZE(PRHODREF))    :: ZTHLT    ! Liquid potential temperature
 !
+!
 !$acc declare create(ZZW2,ZZW3,ZZW4,ZUSW,ZTHLT,GMASK,GMASK1,GMASK2)
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90
index 1ba5d714a040f16477d2095acfdb66e6d4343150..e9e38431b8efa6cf0e9d939aef2ddf302a9b8bea 100644
--- a/src/MNH/ice_adjust.f90
+++ b/src/MNH/ice_adjust.f90
@@ -22,8 +22,8 @@ INTEGER,                  INTENT(IN)    :: KKA   !near ground array index
 INTEGER,                  INTENT(IN)    :: KKU   !uppest atmosphere array index
 INTEGER,                  INTENT(IN)    :: KKL   !vert. levels type 1=MNH -1=ARO
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
-CHARACTER*1,              INTENT(IN)    :: HFRAC_ICE
-CHARACTER*4,              INTENT(IN)    :: HBUNAME  ! Name of the budget
+CHARACTER(len=1),         INTENT(IN)    :: HFRAC_ICE
+CHARACTER(len=4),         INTENT(IN)    :: HBUNAME  ! Name of the budget
 LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
                                                     ! Condensation
 LOGICAL                                 :: OSIGMAS  ! Switch for Sigma_s: 
@@ -194,8 +194,8 @@ INTEGER,                  INTENT(IN)    :: KKA  !near ground array index
 INTEGER,                  INTENT(IN)    :: KKU  !uppest atmosphere array index
 INTEGER,                  INTENT(IN)    :: KKL  !vert. levels type 1=MNH -1=ARO
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
-CHARACTER*1,              INTENT(IN)    :: HFRAC_ICE
-CHARACTER*4,              INTENT(IN)    :: HBUNAME  ! Name of the budget
+CHARACTER(len=1),         INTENT(IN)    :: HFRAC_ICE
+CHARACTER(len=4),         INTENT(IN)    :: HBUNAME  ! Name of the budget
 LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
                                                     ! Condensation
 LOGICAL                                 :: OSIGMAS  ! Switch for Sigma_s: 
diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90
index cdc92d380ac8b8b7c4152a8ecb98e575b4cc0534..957781f1862a455d18478686f61a10eca718268a 100644
--- a/src/MNH/ice_adjust_elec.f90
+++ b/src/MNH/ice_adjust_elec.f90
@@ -21,11 +21,11 @@ INTERFACE
 !
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)    :: KMI      ! Model index 
-CHARACTER*4,              INTENT(IN)    :: HTURBDIM ! Dimensionality of the
+CHARACTER(len=4),         INTENT(IN)    :: HTURBDIM ! Dimensionality of the
                                                     ! turbulence scheme
 CHARACTER(LEN=4),         INTENT(IN)    :: HSCONV   ! Shallow convection scheme
 CHARACTER(LEN=4),         INTENT(IN)    :: HMF_CLOUD! Type of statistical cloud
-CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)    :: HRAD     ! Radiation scheme name
 LOGICAL,                  INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
                                                     ! Condensation
 LOGICAL                                 :: OSIGMAS  ! Switch for Sigma_s: 
@@ -191,11 +191,11 @@ IMPLICIT NONE
 !
 INTEGER,                INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                INTENT(IN)    :: KMI      ! Model index 
-CHARACTER*4,            INTENT(IN)    :: HTURBDIM ! Dimensionality of the
+CHARACTER(len=4),       INTENT(IN)    :: HTURBDIM ! Dimensionality of the
                                                   ! turbulence scheme
 CHARACTER(LEN=4),       INTENT(IN)    :: HSCONV   ! Shallow convection scheme
 CHARACTER(LEN=4),       INTENT(IN)    :: HMF_CLOUD! Type of statistical cloud
-CHARACTER*4,            INTENT(IN)    :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),       INTENT(IN)    :: HRAD     ! Radiation scheme name
 LOGICAL,                INTENT(IN)    :: OSUBG_COND ! Switch for Subgrid 
                                                     ! Condensation
 LOGICAL                               :: OSIGMAS  ! Switch for Sigma_s: 
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 62002a731c199d67d89665d367de2054bcd26f83..4678c605673b913b6be87dc70e12572429f90773 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -285,6 +285,7 @@ END MODULE MODI_INI_MODEL_n
 !!      Bielli S. 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
 !  P. Wautelet 14/03/2019: correct ZWS when variable not present in file (set to XZWS_DEFAULT)
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -316,7 +317,7 @@ USE MODD_REF
 USE MODD_SERIES, ONLY: LSERIES
 USE MODD_TIME
 USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI
-USE MODD_NESTING
+USE MODD_NESTING,       only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL
 USE MODD_PASPOL
 USE MODD_DRAGTREE
 USE MODD_METRICS_n
@@ -338,13 +339,12 @@ USE MODD_DIM_n
 USE MODD_BUDGET
 USE MODD_RADIATIONS_n
 USE MODD_SHADOWS_n
-USE MODD_PARAM_RAD_n,   ONLY : CLW, CAER, CAOP
+USE MODD_PARAM_RAD_n,   ONLY: CAER, CLW
 USE MODD_VAR_ll,        ONLY : IP
 !
 USE MODD_STAND_ATM,     ONLY : XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM
-USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
-                           CCHEM_INPUT_FILE, LCH_CONV_LINOX,             &
-                           XCH_TUV_DOBNEW, LCH_PH, CSPEC_BUDGET, CSPEC_PRODLOSS
+USE MODD_CH_MNHC_n,     ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
+                              LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH
 USE MODD_CH_PH_n
 USE MODD_CH_AEROSOL, ONLY : LORILAM
 USE MODD_CH_AERO_n,  ONLY : XSOLORG,XMI
@@ -366,7 +366,7 @@ USE MODD_CONF_n
 USE MODD_GET_n
 USE MODD_TURB_n
 USE MODD_CTURB
-USE MODD_LBC_n
+USE MODD_LBC_n,         only: CLBCX, CLBCY
 USE MODD_PASPOL_n
 USE MODD_DRAG_n
 USE MODD_BLOWSNOW
@@ -441,7 +441,7 @@ USE MODD_ADVFRC_n
 USE MODD_RELFRC_n
 USE MODD_2D_FRC
 USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL
-USE MODD_IO,       ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY, TFILE_FIRST, TFILE_LAST
+USE MODD_IO,       ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY
 !
 USE MODD_CH_PRODLOSSTOT_n
 USE MODI_CH_INIT_PRODLOSSTOT_n
@@ -1700,12 +1700,7 @@ END IF
 !*       7.    INITIALIZE GRIDS AND METRIC COEFFICIENTS
 !              ----------------------------------------
 !
-CALL SET_GRID(KMI,TPINIFILE,IIU,IJU,IKU,NIMAX_ll,NJMAX_ll,               &
-              XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4,           &
-              XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4,           &
-              NXOR_ALL(KMI),NYOR_ALL(KMI),NXEND_ALL(KMI),NYEND_ALL(KMI), &
-              NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI),                       &
-              CLBCX,CLBCY,                                               &
+CALL SET_GRID(KMI,TPINIFILE,IKU,NIMAX_ll,NJMAX_ll,                       &
               XTSTEP,XSEGLEN,                                            &
               XLONORI,XLATORI,XLON,XLAT,                                 &
               XXHAT,XYHAT,XDXHAT,XDYHAT, XMAP,                           &
diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90
index 6218b69882c2f03d7fe8c79faede3b2e2487e19d..00aa82518fea1a3cd00e205dac3bd22497af384c 100644
--- a/src/MNH/ini_spectren.f90
+++ b/src/MNH/ini_spectren.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2015-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.
@@ -35,9 +35,10 @@ END MODULE MODI_INI_SPECTRE_n
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
 !  P. Wautelet 08/02/2019: allocate to zero-size non associated pointers
 !  P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables
-!!      Bielli S. 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
+!  S. Bielli      02/2019: sea salt: significant sea wave height influences salt emission; 5 salt modes
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
-!!
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
+!
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -49,8 +50,7 @@ USE MODD_BUDGET
 USE MODD_CH_AERO_n,     ONLY: XSOLORG,XMI
 USE MODD_CH_AEROSOL,    ONLY: LORILAM
 USE MODD_CH_MNHC_n,     ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, &
-                              CCHEM_INPUT_FILE, LCH_CONV_LINOX,             &
-                              XCH_TUV_DOBNEW, LCH_PH
+                              LCH_CONV_LINOX, XCH_TUV_DOBNEW, LCH_PH
 USE MODD_CH_PH_n
 USE MODD_CLOUD_MF_n
 USE MODD_CST
@@ -75,13 +75,13 @@ USE MODD_GET_n
 USE MODD_GRID,          ONLY: XLONORI,XLATORI
 USE MODD_GRID_n
 USE MODD_IO,            ONLY: TFILEDATA
-USE MODD_LBC_n
+USE MODD_LBC_n,         only: CLBCX, CLBCY
 USE MODD_LSFIELD_n
 USE MODD_LUNIT_n,       ONLY: COUTFILE, TLUOUT
 USE MODD_MEAN_FIELD
 USE MODD_MEAN_FIELD_n
 USE MODD_METRICS_n
-USE MODD_NESTING
+USE MODD_NESTING,       only: CDAD_NAME, NDAD, NDT_2_WAY, NDTRATIO, NDXRATIO_ALL, NDYRATIO_ALL
 USE MODD_NSV
 USE MODD_NUDGING_n,     ONLY: LNUDGING
 USE MODD_OUT_n
@@ -89,7 +89,6 @@ USE MODD_PARAMETERS
 USE MODD_PARAM_KAFR_n
 USE MODD_PARAM_MFSHALL_n
 USE MODD_PARAM_n
-USE MODD_PARAM_RAD_n,   ONLY: CLW, CAER
 USE MODD_PASPOL
 USE MODD_PASPOL_n
 USE MODD_BLOWSNOW
@@ -705,12 +704,7 @@ CALL INI_BIKHARDT_n (NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI),KMI)
 !*       6.    INITIALIZE GRIDS AND METRIC COEFFICIENTS
 !              ----------------------------------------
 !
-CALL SET_GRID(KMI,TPINIFILE,IIU,IJU,IKU,NIMAX_ll,NJMAX_ll,               &
-              XBMX1,XBMX2,XBMX3,XBMX4,XBMY1,XBMY2,XBMY3,XBMY4,           &
-              XBFX1,XBFX2,XBFX3,XBFX4,XBFY1,XBFY2,XBFY3,XBFY4,           &
-              NXOR_ALL(KMI),NYOR_ALL(KMI),NXEND_ALL(KMI),NYEND_ALL(KMI), &
-              NDXRATIO_ALL(KMI),NDYRATIO_ALL(KMI),                       &
-              CLBCX,CLBCY,                                               &
+CALL SET_GRID(KMI,TPINIFILE,IKU,NIMAX_ll,NJMAX_ll,                       &
               XTSTEP,XSEGLEN,                                            &
               XLONORI,XLATORI,XLON,XLAT,                                 &
               XXHAT,XYHAT,XDXHAT,XDYHAT, XMAP,                           &
diff --git a/src/MNH/isocom.f b/src/MNH/isocom.f
index be6ce490c62e820652828471d08910662a039b11..b02dbe9f597d2c93ca9f49458d7dfb825558f88c 100644
--- a/src/MNH/isocom.f
+++ b/src/MNH/isocom.f
@@ -1,4 +1,4 @@
-CMNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+CMNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier
 CMNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 CMNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 CMNH_LIC for details. version 1.
@@ -13,7 +13,7 @@ C ======================== ARGUMENTS / USAGE ===========================
 C
 C  INPUT:
 C  1. [WI] 
-C     REAL*8           array of length [5].
+C     REAL(kind(0.0d0))           array of length [5].
 C     Concentrations, expressed in moles/m3. Depending on the type of
 C     problem solved (specified in CNTRL(1)), WI contains either 
 C     GAS+AEROSOL or AEROSOL only concentratios.
@@ -24,15 +24,15 @@ C     WI(4) - nitrate
 C     WI(5) - chloride
 C
 C  2. [RHI] 
-C     REAL*8           variable.  
+C     REAL(kind(0.0d0))           variable.
 C     Ambient relative humidity expressed on a (0,1) scale.
 C
 C  3. [TEMPI]
-C     REAL*8           variable. 
+C     REAL(kind(0.0d0))           variable.
 C     Ambient temperature expressed in Kelvins. 
 C
 C  4. [CNTRL]
-C     REAL*8           array of length [2].
+C     REAL(kind(0.0d0))           array of length [2].
 C     Parameters that control the type of problem solved.
 C
 C     CNTRL(1): Defines the type of problem solved.
@@ -47,7 +47,7 @@ C     1 - The aerosol is in only liquid state (metastable aerosol)
 C
 C  OUTPUT:
 C  1. [WT] 
-C     REAL*8           array of length [5].
+C     REAL(kind(0.0d0))           array of length [5].
 C     Total concentrations (GAS+AEROSOL) of species, expressed in moles/m3. 
 C     If the foreward probelm is solved (CNTRL(1)=0), array WT is 
 C     identical to array WI.
@@ -58,14 +58,14 @@ C     WT(4) - total nitrate
 C     WT(5) - total chloride
 C
 C  2. [GAS]
-C     REAL*8           array of length [03]. 
+C     REAL(kind(0.0d0))           array of length [03].
 C     Gaseous species concentrations, expressed in moles/m3. 
 C     GAS(1) - NH3
 C     GAS(2) - HNO3
 C     GAS(3) - HCl 
 C
 C  3. [AERLIQ]
-C     REAL*8           array of length [11]. 
+C     REAL(kind(0.0d0))           array of length [11].
 C     Liquid aerosol species concentrations, expressed in moles/m3. 
 C     AERLIQ(01) - H+(aq)          
 C     AERLIQ(02) - Na+(aq)         
@@ -81,7 +81,7 @@ C     AERLIQ(11) - HNO3(aq) (undissociated)
 C     AERLIQ(12) - OH-(aq)
 C
 C  4. [AERSLD]
-C     REAL*8           array of length [09]. 
+C     REAL(kind(0.0d0))           array of length [09].
 C     Solid aerosol species concentrations, expressed in moles/m3. 
 C     AERSLD(01) - NaNO3(s)
 C     AERSLD(02) - NH4NO3(s)
@@ -94,11 +94,11 @@ C     AERSLD(08) - NH4HSO4(s)
 C     AERSLD(09) - (NH4)4H(SO4)2(s)
 C
 C  5. [SCASI]
-C     CHARACTER*15 variable.
+C     CHARACTER(len=15) variable.
 C     Returns the subcase which the input corresponds to.
 C
 C  6. [OTHER]
-C     REAL*8           array of length [6].
+C     REAL(kind(0.0d0))           array of length [6].
 C     Returns solution information.
 C
 C     OTHER(1): Shows if aerosol water exists.
@@ -126,6 +126,7 @@ C
 C Modifications:
 C  P. Wautelet 13/02/2018: use ifdef MNH_REAL to prevent problems with intrinsics on Blue Gene/Q
 C  P. Wautelet 22/01/2019: replace obsolete SNGL intrinsics by REAL intrinsics
+C  P. Wautelet 19/04/2019: use kind(0.0d0) instead of kind=8
 C=======================================================================
 C
       SUBROUTINE ISOROPIA (WI, RHI, TEMPI,  CNTRL, 
@@ -280,7 +281,7 @@ C     Defines the maximum number of iterations for activity coefficient
 C     calculations.
 C 
 C  6. [EPSACTI] 
-C     REAL*8           variable.
+C     REAL(kind(0.0d0))           variable.
 C     Defines the convergence criterion for activity coefficient 
 C     calculations.
 C 
@@ -1379,12 +1380,12 @@ C *** WRITTEN BY ATHANASIOS NENES
 C
 C=======================================================================
 C
-C     REAL*8           FUNCTION GETASR (SO4I, RHI)
+C     REAL(kind(0.0d0))           FUNCTION GETASR (SO4I, RHI)
                        FUNCTION GETASR (SO4I, RHI)
       PARAMETER (NSO4S=14, NRHS=20, NASRD=NSO4S*NRHS)
       COMMON /ASRC/ ASRAT(NASRD), ASSO4(NSO4S)
-      REAL*8           SO4I, RHI
-      REAL*8           GETASR 
+      REAL(kind(0.0d0))           SO4I, RHI
+      REAL(kind(0.0d0))           GETASR
 CCC
 CCC *** SOLVE USING FULL COMPUTATIONS, NOT LOOK-UP TABLES **************
 CCC
@@ -1531,7 +1532,7 @@ C=======================================================================
 C
       SUBROUTINE CALCHA
       INCLUDE 'isrpia.inc'
-      REAL*8           KAPA
+      REAL(kind(0.0d0))           KAPA
 CC      CHARACTER ERRINF*40
 C
 C *** CALCULATE HCL DISSOLUTION *****************************************
@@ -1628,7 +1629,7 @@ C=======================================================================
 C
       SUBROUTINE CALCNA
       INCLUDE 'isrpia.inc'
-      REAL*8           KAPA
+      REAL(kind(0.0d0))           KAPA
 CC      CHARACTER ERRINF*40
 C
 C *** CALCULATE HNO3 DISSOLUTION ****************************************
@@ -1809,7 +1810,7 @@ C=======================================================================
 C
       SUBROUTINE CALCNHA
       INCLUDE 'isrpia.inc'
-      REAL*8           M1, M2, M3
+      REAL(kind(0.0d0))           M1, M2, M3
       CHARACTER ERRINF*40     
 C
 C *** SPECIAL CASE; WATER=ZERO ******************************************
@@ -1968,7 +1969,7 @@ C=======================================================================
 C
       SUBROUTINE CALCAMAQ (NH4I, OHI, DELT)
       INCLUDE 'isrpia.inc'
-      REAL*8           NH4I
+      REAL(kind(0.0d0))           NH4I
 CC      CHARACTER ERRINF*40
 C
 C *** EQUILIBRIUM CONSTANTS
@@ -2028,7 +2029,7 @@ C=======================================================================
 C
       SUBROUTINE CALCAMAQ2 (GGNH3, NH4I, OHI, NH3AQ)
       INCLUDE 'isrpia.inc'
-      REAL*8           NH4I, NH3AQ
+      REAL(kind(0.0d0))           NH4I, NH3AQ
 C
 C *** EQUILIBRIUM CONSTANTS
 C
@@ -2072,7 +2073,7 @@ C=======================================================================
 C
       SUBROUTINE CALCCLAQ (CLI, HI, DELT)
       INCLUDE 'isrpia.inc'
-      REAL*8           CLI
+      REAL(kind(0.0d0))           CLI
 C
 C *** EQUILIBRIUM CONSTANTS
 C
@@ -2123,7 +2124,7 @@ C=======================================================================
 C
       SUBROUTINE CALCCLAQ2 (GGCL, CLI, HI, CLAQ)
       INCLUDE 'isrpia.inc'
-      REAL*8           CLI
+      REAL(kind(0.0d0))           CLI
 C
 C *** EQUILIBRIUM CONSTANTS
 C
@@ -2166,7 +2167,7 @@ C=======================================================================
 C
       SUBROUTINE CALCNIAQ (NO3I, HI, DELT)
       INCLUDE 'isrpia.inc'
-      REAL*8           NO3I
+      REAL(kind(0.0d0))           NO3I
 C
 C *** EQUILIBRIUM CONSTANTS
 C
@@ -2220,7 +2221,7 @@ C=======================================================================
 C
       SUBROUTINE CALCNIAQ2 (GGNO3, NO3I, HI, NO3AQ)
       INCLUDE 'isrpia.inc'
-      REAL*8           NO3I, NO3AQ
+      REAL(kind(0.0d0))           NO3I, NO3AQ
 C
 C *** EQUILIBRIUM CONSTANTS
 C
@@ -2816,7 +2817,7 @@ C
 C
       REAL EX10, URF
       REAL G0(3,4),ZPL,ZMI,AGAMA,SION,H,CH,F1(3),F2(4)
-      REAL*8           MPL, XIJ, YJI
+      REAL(kind(0.0d0))           MPL, XIJ, YJI
       PARAMETER (URF=0.5)
 C
       G(I,J)= (F1(I)/Z(I) + F2(J)/Z(J+3)) / (Z(I)+Z(J+3)) - H
@@ -3465,7 +3466,7 @@ CC
       SUBROUTINE CHRBLN (STR, IBLK)
 CC
 CC***********************************************************************
-      CHARACTER*(*) STR
+      CHARACTER(len=*) STR
 C
       IBLK = 1                       ! Substring pointer (default=1)
       ILEN = LEN(STR)                ! Length of string 
@@ -3591,8 +3592,8 @@ CC  Author         : Athanasios Nenes
 CC
 CC  ======================= ARGUMENTS / USAGE =============================
 CC
-CC  VAR        is the REAL*8           variable which value is to be saved 
-CC  DEF        is a REAL*8           variable, with the default value of VAR.        
+CC  VAR        is the REAL(kind(0.0d0))           variable which value is to be saved
+CC  DEF        is a REAL(kind(0.0d0))           variable, with the default value of VAR.
 CC  PROMPT     is a CHARACTER varible containing the prompt string.     
 CC  PRFMT      is a CHARACTER variable containing the FORMAT specifier
 CC             for the default value DEF.
@@ -3615,7 +3616,7 @@ CC
 CC
 CC***********************************************************************
       CHARACTER PROMPT*(*), PRFMT*(*), BUFFER*128
-      REAL*8           DEF, VAR
+      REAL(kind(0.0d0))           DEF, VAR
       INTEGER IERR
 C
       IERR = 0
@@ -3730,7 +3731,7 @@ CC
       SUBROUTINE Appendext (Filename, Defext, Overwrite)
 CC
 CC***********************************************************************
-      CHARACTER*(*) Filename, Defext
+      CHARACTER(len=*) Filename, Defext
       LOGICAL       Overwrite
 C
       CALL CHRBLN (Filename, Iend)
@@ -3778,10 +3779,10 @@ C=======================================================================
 C
       SUBROUTINE POLY3 (A1, A2, A3, ROOT, ISLV)
 C
-      IMPLICIT REAL*8           (A-H, O-Z)
+      IMPLICIT REAL(kind(0.0d0))           (A-H, O-Z)
       PARAMETER (EXPON=1.D0/3.D0,     ZERO=0.D0, THET1=120.D0/180.D0, 
      &           THET2=240.D0/180.D0, PI=3.14159265358932, EPS=1D-50)
-      REAL*8            X(3)
+      REAL(kind(0.0d0))            X(3)
 C
 C *** SPECIAL CASE : QUADRATIC*X EQUATION *****************************
 C
@@ -3878,7 +3879,7 @@ C=======================================================================
 C
       SUBROUTINE POLY3B (A1, A2, A3, RTLW, RTHI, ROOT, ISLV)
 C
-      IMPLICIT REAL*8           (A-H, O-Z)
+      IMPLICIT REAL(kind(0.0d0))           (A-H, O-Z)
       PARAMETER (ZERO=0.D0, EPS=1D-15, MAXIT=100, NDIV=5)
 C
       FUNC(X) = X**3.d0 + A1*X**2.0 + A2*X + A3
@@ -3944,7 +3945,7 @@ C
 
 
 ccc      PROGRAM DRIVER
-ccc      REAL*8           ROOT
+ccc      REAL(kind(0.0d0))           ROOT
 cccC
 ccc      CALL POLY3 (-1.d0, 1.d0, -1.d0, ROOT, ISLV)
 ccc      IF (ISLV.NE.0) STOP 'Error in POLY3'
@@ -4093,7 +4094,7 @@ C ======================== ARGUMENTS / USAGE ===========================
 C
 C  INPUT:
 C  1. [WI] 
-C     REAL*8           array of length [5].
+C     REAL(kind(0.0d0))           array of length [5].
 C     Concentrations, expressed in moles/m3. Depending on the type of
 C     problem solved, WI contains either GAS+AEROSOL or AEROSOL only 
 C     concentratios.
@@ -4104,11 +4105,11 @@ C     WI(4) - nitrate
 C     WI(5) - chloride
 C
 C  2. [RHI] 
-C     REAL*8           variable.  
+C     REAL(kind(0.0d0))           variable.
 C     Ambient relative humidity expressed in a (0,1) scale.
 C
 C  3. [TEMPI]
-C     REAL*8           variable. 
+C     REAL(kind(0.0d0))           variable.
 C     Ambient temperature expressed in Kelvins. 
 C
 C  4. [IPROB]
@@ -4121,14 +4122,14 @@ C                  contains AEROSOL concentrations only.
 C
 C  OUTPUT:
 C  1. [GAS]
-C     REAL*8           array of length [03]. 
+C     REAL(kind(0.0d0))           array of length [03].
 C     Gaseous species concentrations, expressed in moles/m3. 
 C     GAS(1) - NH3
 C     GAS(2) - HNO3
 C     GAS(3) - HCl 
 C
 C  2. [AERLIQ]
-C     REAL*8           array of length [11]. 
+C     REAL(kind(0.0d0))           array of length [11].
 C     Liquid aerosol species concentrations, expressed in moles/m3. 
 C     AERLIQ(01) - H+(aq)          
 C     AERLIQ(02) - Na+(aq)         
@@ -4143,7 +4144,7 @@ C     AERLIQ(10) - HNCl(aq) (undissociated)
 C     AERLIQ(11) - HNO3(aq) (undissociated)
 C
 C  3. [AERSLD]
-C     REAL*8           array of length [09]. 
+C     REAL(kind(0.0d0))           array of length [09].
 C     Solid aerosol species concentrations, expressed in moles/m3. 
 C     AERSLD(01) - NaNO3(s)
 C     AERSLD(02) - NH4NO3(s)
@@ -4412,7 +4413,7 @@ C ======================== ARGUMENTS / USAGE ===========================
 C
 C  OUTPUT:
 C  1. [VERSI]
-C     CHARACTER*14 variable. 
+C     CHARACTER(len=14) variable. 
 C     Contains version-date information of ISORROPIA 
 C
 C  2. [NCMP]
@@ -4439,11 +4440,11 @@ C     The size of the error stack (maximum number of errors that can
 C     be stored before the stack exhausts).
 C
 C  7. [TIN]
-C     REAL*8           variable
+C     REAL(kind(0.0d0))           variable
 C     The value used for a very small number.
 C
 C  8. [GRT]
-C     REAL*8           variable
+C     REAL(kind(0.0d0))           variable
 C     The value used for a very large number.
 C 
 C *** COPYRIGHT 1996-2000, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY
@@ -4454,7 +4455,7 @@ C
       SUBROUTINE ISORINF (VERSI, NCMP, NION, NAQGAS, NSOL, NERR, TIN,
      &                    GRT)
       INCLUDE 'isrpia.inc'
-      CHARACTER*14 VERSI
+      CHARACTER(len=14) VERSI
 C
 C *** ASSIGN INFO *******************************************************
 C
diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90
index 2cd179fc58e0933e5c913c3cc8dc6c57f26b88a0..58d8e8a59afe41995396c3c16c2faea6b762bcdf 100644
--- a/src/MNH/khko_notadjust.f90
+++ b/src/MNH/khko_notadjust.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2013-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.
@@ -20,7 +20,7 @@ USE MODD_IO, ONLY: TFILEDATA
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)    :: KTCOUNT      ! Number of moist variables
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)    :: HRAD     ! Radiation scheme name
 LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of 
                                                     ! the OUTPUT FM-file
                                                     ! Condensation
@@ -121,7 +121,7 @@ IMPLICIT NONE
 INTEGER,                  INTENT(IN)    :: KRR      ! Number of moist variables
 INTEGER,                  INTENT(IN)    :: KTCOUNT      ! Number of moist variables
 TYPE(TFILEDATA),          INTENT(IN)    :: TPFILE   ! Output file
-CHARACTER*4,              INTENT(IN)    :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)    :: HRAD     ! Radiation scheme name
 LOGICAL,                  INTENT(IN)    :: OCLOSE_OUT ! Conditional closure of 
                                                     ! the OUTPUT FM-file
                                                     ! Condensation
diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90
index c09f7abd30d5ebdec856a9021d70af90b42166e5..5cad38d69f8fccdc3f1c1a037f3fa01a1e5a5632 100644
--- a/src/MNH/lima_adjust.f90
+++ b/src/MNH/lima_adjust.f90
@@ -20,9 +20,9 @@ USE MODD_IO, ONLY: TFILEDATA
 INTEGER,                  INTENT(IN)   :: KRR        ! Number of moist variables
 INTEGER,                  INTENT(IN)   :: KMI        ! Model index 
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE     ! Output file
-CHARACTER*4,              INTENT(IN)   :: HTURBDIM   ! Dimensionality of the
+CHARACTER(len=4),         INTENT(IN)   :: HTURBDIM   ! Dimensionality of the
                                                      ! turbulence scheme
-CHARACTER*4,              INTENT(IN)   :: HRAD       ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)   :: HRAD       ! Radiation scheme name
 LOGICAL,                  INTENT(IN)   :: OCLOSE_OUT ! Conditional closure of 
                                                      ! the OUTPUT FM-file
 LOGICAL,                  INTENT(IN)   :: OSUBG_COND ! Switch for Subgrid 
@@ -170,9 +170,9 @@ IMPLICIT NONE
 INTEGER,                  INTENT(IN)   :: KRR        ! Number of moist variables
 INTEGER,                  INTENT(IN)   :: KMI        ! Model index 
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE     ! Output file
-CHARACTER*4,              INTENT(IN)   :: HTURBDIM   ! Dimensionality of the
+CHARACTER(len=4),         INTENT(IN)   :: HTURBDIM   ! Dimensionality of the
                                                      ! turbulence scheme
-CHARACTER*4,              INTENT(IN)   :: HRAD       ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)   :: HRAD       ! Radiation scheme name
 LOGICAL,                  INTENT(IN)   :: OCLOSE_OUT ! Conditional closure of 
                                                      ! the OUTPUT FM-file
 LOGICAL,                  INTENT(IN)   :: OSUBG_COND ! Switch for Subgrid 
diff --git a/src/MNH/lima_cold_sedimentation.f90 b/src/MNH/lima_cold_sedimentation.f90
index 2764324eeca2d5e4da169904a0f1799f9f87b019..c81d3924ffa5069574a428ad741c75911540f03a 100644
--- a/src/MNH/lima_cold_sedimentation.f90
+++ b/src/MNH/lima_cold_sedimentation.f90
@@ -263,9 +263,7 @@ DO JN = 1 , KSPLITG
             ZRSS(JL) = PRSS(I1(JL),I2(JL),I3(JL))
          END DO
          WHERE( ZRSS(:)>XRTMIN(5) )
-! Correction BVIE ZRHODREF
-!            ZZW(:) = XFSEDS * ZRSS(:)**XEXSEDS * ZRHODREF(:)**(XEXSEDS-XCEXVT)
-            ZZW(:) = XFSEDS * ZRSS(:)**XEXSEDS * ZRHODREF(:)**(-XCEXVT) * ZRHODREF(:)
+            ZZW(:) = XFSEDS * (ZRSS(:)*ZRHODREF(:))**XEXSEDS * ZRHODREF(:)**(-XCEXVT)
          END WHERE
          ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 )
          ZWSEDR(:,:,IKB:IKE) = MIN( ZWSEDR(:,:,IKB:IKE), PRSS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) )
@@ -289,9 +287,7 @@ DO JN = 1 , KSPLITG
             ZRGS(JL) = PRGS(I1(JL),I2(JL),I3(JL))
          END DO
          WHERE( ZRGS(:)>XRTMIN(6) )
-! Correction BVIE ZRHODREF
-!            ZZW(:) = XFSEDG * ZRGS(:)**XEXSEDG * ZRHODREF(:)**(XEXSEDG-XCEXVT)
-            ZZW(:) = XFSEDG * ZRGS(:)**XEXSEDG * ZRHODREF(:)**(-XCEXVT) * ZRHODREF(:)
+            ZZW(:) = XFSEDG * (ZRGS(:)*ZRHODREF(:))**XEXSEDG * ZRHODREF(:)**(-XCEXVT)
          END WHERE
          ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 )
          ZWSEDR(:,:,IKB:IKE) = MIN( ZWSEDR(:,:,IKB:IKE), PRGS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) )
@@ -315,9 +311,7 @@ DO JN = 1 , KSPLITG
             ZRHS(JL) = PRHS(I1(JL),I2(JL),I3(JL))
          END DO
          WHERE( ZRHS(:)>XRTMIN(7) )
-! Correction BVIE ZRHODREF
-!            ZZW(:) = XFSEDH * ZRHS(:)**XEXSEDH * ZRHODREF(:)**(XEXSEDH-XCEXVT)
-            ZZW(:) = XFSEDH * ZRHS(:)**XEXSEDH * ZRHODREF(:)**(-XCEXVT) * ZRHODREF(:)
+            ZZW(:) = XFSEDH * (ZRHS(:)*ZRHODREF(:))**XEXSEDH * ZRHODREF(:)**(-XCEXVT)
          END WHERE
          ZWSEDR(:,:,:) = UNPACK( ZZW(:),MASK=GSEDIM(:,:,:),FIELD=0.0 )
          ZWSEDR(:,:,IKB:IKE) = MIN( ZWSEDR(:,:,IKB:IKE), PRHS(:,:,IKB:IKE) * PRHODREF(:,:,IKB:IKE) / ZW(:,:,IKB:IKE) )
diff --git a/src/MNH/lima_cold_slow_processes.f90 b/src/MNH/lima_cold_slow_processes.f90
index 08ad1dc799b8fdfd88c44f0b90f1577bba9770c0..0aeb16cfc4c97576272de1ebcc5d2262155663be 100644
--- a/src/MNH/lima_cold_slow_processes.f90
+++ b/src/MNH/lima_cold_slow_processes.f90
@@ -339,11 +339,9 @@ IF( IMICRO >= 1 ) THEN
       WHERE ( ZLBDAS(:)<XLBDASCNVI_MAX .AND. (ZRST(:)>XRTMIN(5)) &
                                        .AND. (ZSSI(:)<0.0)       )
          ZZW(:) = (ZLBDAS(:)*XDSCNVI_LIM)**(XALPHAS)
-         ZZX(:) = ( -ZSSI(:)/ZAI(:) ) * (XCCS*ZLBDAS(:)**XCXS) * (ZZW(:)**XNUI) &
+         ZZX(:) = ( -ZSSI(:)/ZAI(:) ) * (XCCS*ZLBDAS(:)**XCXS)/ZRHODREF(:) * (ZZW(:)**XNUI) &
                                                                * EXP(-ZZW(:))
 !
-! Correction BVIE RHODREF
-!         ZZW(:) = MIN( ( XR0DEPSI+XR1DEPSI*ZCJ(:) )*ZZX(:)/ZRHODREF(:),ZRSS(:) )
          ZZW(:) = MIN( ( XR0DEPSI+XR1DEPSI*ZCJ(:) )*ZZX(:),ZRSS(:) )
          ZRIS(:) = ZRIS(:) + ZZW(:)
          ZRSS(:) = ZRSS(:) - ZZW(:)
@@ -372,9 +370,7 @@ IF( IMICRO >= 1 ) THEN
 !
       ZZW(:) = 0.0
       WHERE ( (ZRST(:)>XRTMIN(5)) .AND. (ZRSS(:)>ZRTMIN(5)) )
-!Correction BVIE rhodref
-!         ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) *                               &
-         ZZW(:) = ( ZSSI(:)/(ZAI(:)) ) *                               &
+         ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) *                               &
                   ( X0DEPS*ZLBDAS(:)**XEX0DEPS + X1DEPS*ZCJ(:)*ZLBDAS(:)**XEX1DEPS )
          ZZW(:) =    MIN( ZRVS(:),ZZW(:)      )*(0.5+SIGN(0.5,ZZW(:))) &
                    - MIN( ZRSS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:)))
@@ -440,7 +436,7 @@ IF( IMICRO >= 1 ) THEN
       WHERE ( (ZRIT(:)>XRTMIN(4)) .AND. (ZRST(:)>XRTMIN(5)) .AND. (ZRIS(:)>ZRTMIN(4)) &
                                                             .AND. (ZCIS(:)>ZCTMIN(4)) )
          ZZW1(:,3) = (ZLBDAI(:) / ZLBDAS(:))**3
-         ZZW1(:,1) = (ZCIT(:)*(XCCS*ZLBDAS(:)**XCXS)*EXP( XCOLEXIS*(ZZT(:)-XTT) )) &
+         ZZW1(:,1) = (ZCIT(:)*(XCCS*ZLBDAS(:)**XCXS)/ZRHODREF(:)*EXP( XCOLEXIS*(ZZT(:)-XTT) )) &
                                                     / (ZLBDAI(:)**3)
          ZZW1(:,2) = MIN( ZZW1(:,1)*(XAGGS_CLARGE1+XAGGS_CLARGE2*ZZW1(:,3)),ZCIS(:) )
          ZCIS(:) = ZCIS(:) - ZZW1(:,2)
diff --git a/src/MNH/lima_functions.f90 b/src/MNH/lima_functions.f90
index 30fd902b4ef4169f78e2e5a60dca84911d1b7c71..f253b700aa334c5879f149748cf21cfa4e489c00 100644
--- a/src/MNH/lima_functions.f90
+++ b/src/MNH/lima_functions.f90
@@ -4,8 +4,8 @@
 !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)
-!
+!  P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler)
+!  P. Wautelet 19/04/2019: use modd_precision kinds
 !-----------------------------------------------------------------
 !#################################
         MODULE MODI_LIMA_FUNCTIONS
@@ -222,13 +222,15 @@ END FUNCTION DELTA_VEC
 !###########################
 SUBROUTINE gaulag(x,w,n,alf)
 !###########################
+  use modd_precision, only: MNHREAL64
+
   INTEGER n,MAXIT
   REAL alf,w(n),x(n)
-  REAL(kind=8) :: EPS
+  REAL(kind=MNHREAL64) :: EPS
   PARAMETER (EPS=3.D-14,MAXIT=10)
   INTEGER i,its,j
   REAL ai
-  REAL(kind=8) :: p1,p2,p3,pp,z,z1
+  REAL(kind=MNHREAL64) :: p1,p2,p3,pp,z,z1
 !
   REAL SUMW
 !
@@ -277,12 +279,14 @@ END SUBROUTINE gaulag
 !##########################################
 SUBROUTINE gauher(x,w,n)
 !##########################################
+  use modd_precision, only: MNHREAL64
+
   INTEGER n,MAXIT
   REAL w(n),x(n)
-  REAL(kind=8) :: EPS,PIM4
+  REAL(kind=MNHREAL64) :: EPS,PIM4
   PARAMETER (EPS=3.D-14,PIM4=.7511255444649425D0,MAXIT=10)
   INTEGER i,its,j,m
-  REAL(kind=8) :: p1,p2,p3,pp,z,z1
+  REAL(kind=MNHREAL64) :: p1,p2,p3,pp,z,z1
 !
   REAL SUMW
 !
diff --git a/src/MNH/lima_graupel_deposition.f90 b/src/MNH/lima_graupel_deposition.f90
index 85fbbe915979039948a1753c357b65a7256ae2ad..4c042364de5b785987f468d9c3bb5a92d7981a5a 100644
--- a/src/MNH/lima_graupel_deposition.f90
+++ b/src/MNH/lima_graupel_deposition.f90
@@ -7,19 +7,20 @@
 !      #################################
 !
 INTERFACE
-   SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE,                            &
+   SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF,                  &
                                        PRGT, PSSI, PLBDG, PAI, PCJ, PLSFACT, &
                                        P_TH_DEPG, P_RG_DEPG,                 &
                                        PA_TH, PA_RV, PA_RG                   )
 !
 LOGICAL, DIMENSION(:),INTENT(IN)    :: LDCOMPUTE
+REAL, DIMENSION(:),   INTENT(IN)    :: PRHODREF ! 
 !
-REAL, DIMENSION(:),   INTENT(IN)    :: PRGT    ! Cloud water C. at t
-REAL, DIMENSION(:),   INTENT(IN)    :: PSSI    ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PLBDG   ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PAI     ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PCJ     ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PLSFACT ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PRGT     ! Cloud water C. at t
+REAL, DIMENSION(:),   INTENT(IN)    :: PSSI     ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PLBDG    ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PAI      ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PCJ      ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PLSFACT  ! 
 !
 REAL, DIMENSION(:),   INTENT(INOUT) :: P_TH_DEPG
 REAL, DIMENSION(:),   INTENT(INOUT) :: P_RG_DEPG
@@ -33,7 +34,7 @@ END INTERFACE
 END MODULE MODI_LIMA_GRAUPEL_DEPOSITION
 !
 !     ###########################################################################
-      SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE,                            &
+      SUBROUTINE LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF,                  &
                                           PRGT, PSSI, PLBDG, PAI, PCJ, PLSFACT, &
                                           P_TH_DEPG, P_RG_DEPG,                 &
                                           PA_TH, PA_RV, PA_RG                   )
@@ -68,13 +69,14 @@ IMPLICIT NONE
 !*       0.1   Declarations of dummy arguments :
 !
 LOGICAL, DIMENSION(:),INTENT(IN)    :: LDCOMPUTE
+REAL, DIMENSION(:),   INTENT(IN)    :: PRHODREF ! 
 !
-REAL, DIMENSION(:),   INTENT(IN)    :: PRGT    ! Cloud water C. at t
-REAL, DIMENSION(:),   INTENT(IN)    :: PSSI    ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PLBDG   ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PAI     ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PCJ     ! 
-REAL, DIMENSION(:),   INTENT(IN)    :: PLSFACT ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PRGT     ! Cloud water C. at t
+REAL, DIMENSION(:),   INTENT(IN)    :: PSSI     ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PLBDG    ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PAI      ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PCJ      ! 
+REAL, DIMENSION(:),   INTENT(IN)    :: PLSFACT  ! 
 !
 REAL, DIMENSION(:),   INTENT(INOUT) :: P_TH_DEPG
 REAL, DIMENSION(:),   INTENT(INOUT) :: P_RG_DEPG
@@ -93,7 +95,7 @@ REAL, DIMENSION(:),   INTENT(INOUT) :: PA_RG
 P_TH_DEPG(:) = 0.0
 P_RG_DEPG(:) = 0.0
 WHERE ( (PRGT(:)>XRTMIN(6)) .AND. LDCOMPUTE(:) )
-   P_RG_DEPG(:) = ( PSSI(:)/(PAI(:)) ) *                               &
+   P_RG_DEPG(:) = ( PSSI(:)/PAI(:)/PRHODREF(:) ) *                       &
         ( X0DEPG*PLBDG(:)**XEX0DEPG + X1DEPG*PCJ(:)*PLBDG(:)**XEX1DEPG )
    P_TH_DEPG(:) = P_RG_DEPG(:)*PLSFACT(:)
 END WHERE
diff --git a/src/MNH/lima_ice_aggregation_snow.f90 b/src/MNH/lima_ice_aggregation_snow.f90
index 15c1d699c24833c3513b7a5a75ff747994254085..09ebc41dca2aab029d52c586d4efb67476b8ee9f 100644
--- a/src/MNH/lima_ice_aggregation_snow.f90
+++ b/src/MNH/lima_ice_aggregation_snow.f90
@@ -8,7 +8,7 @@
 !
 INTERFACE
    SUBROUTINE LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE,                      &
-                                         PT,                             &
+                                         PT, PRHODREF,                   &
                                          PRIT, PRST, PCIT, PLBDI, PLBDS, &
                                          P_RI_AGGS, P_CI_AGGS,           &
                                          PA_RI, PA_CI, PA_RS             )
@@ -16,6 +16,7 @@ INTERFACE
 LOGICAL, DIMENSION(:),INTENT(IN)    :: LDCOMPUTE
 !
 REAL, DIMENSION(:),   INTENT(IN)    :: PT
+REAL, DIMENSION(:),   INTENT(IN)    :: PRHODREF
 !
 REAL, DIMENSION(:),   INTENT(IN)    :: PRIT
 REAL, DIMENSION(:),   INTENT(IN)    :: PRST
@@ -36,7 +37,7 @@ END MODULE MODI_LIMA_ICE_AGGREGATION_SNOW
 !
 !     #######################################################################
       SUBROUTINE LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE,                      &
-                                            PT,                             &
+                                            PT, PRHODREF,                   &
                                             PRIT, PRST, PCIT, PLBDI, PLBDS, &
                                             P_RI_AGGS, P_CI_AGGS,           &
                                             PA_RI, PA_CI, PA_RS             )
@@ -74,6 +75,7 @@ IMPLICIT NONE
 LOGICAL, DIMENSION(:),INTENT(IN)    :: LDCOMPUTE
 !
 REAL, DIMENSION(:),   INTENT(IN)    :: PT
+REAL, DIMENSION(:),   INTENT(IN)    :: PRHODREF
 !
 REAL, DIMENSION(:),   INTENT(IN)    :: PRIT
 REAL, DIMENSION(:),   INTENT(IN)    :: PRST
@@ -108,7 +110,7 @@ P_CI_AGGS(:) = 0.
 !
 WHERE ( (PRIT(:)>XRTMIN(4)) .AND. (PRST(:)>XRTMIN(5)) .AND. LDCOMPUTE(:) )
    ZZW1(:) = (PLBDI(:) / PLBDS(:))**3
-   ZZW2(:) = (PCIT(:)*(XCCS*PLBDS(:)**XCXS)*EXP( XCOLEXIS*(PT(:)-XTT) )) &
+   ZZW2(:) = (PCIT(:)*(XCCS*PLBDS(:)**XCXS)/PRHODREF(:)*EXP( XCOLEXIS*(PT(:)-XTT) )) &
         / (PLBDI(:)**3)
    ZZW3(:) = ZZW2(:)*(XAGGS_CLARGE1+XAGGS_CLARGE2*ZZW1(:))
 !
diff --git a/src/MNH/lima_ice_snow_deposition.f90 b/src/MNH/lima_ice_snow_deposition.f90
index 7563412ba348469c1628a7849be592cb01f1e351..4d92b528ac9aabb0224e61ae9de0c23a5b50f0fb 100644
--- a/src/MNH/lima_ice_snow_deposition.f90
+++ b/src/MNH/lima_ice_snow_deposition.f90
@@ -166,7 +166,7 @@ WHERE( GMICRO )
    WHERE ( PLBDS(:)<XLBDASCNVI_MAX .AND. (PRST(:)>XRTMIN(5)) &
                                    .AND. (PSSI(:)<0.0)       )
       ZZW(:) = (PLBDS(:)*XDSCNVI_LIM)**(XALPHAS)
-      ZZX(:) = ( -PSSI(:)/PAI(:) ) * (XCCS*PLBDS(:)**XCXS) * (ZZW(:)**XNUS) * EXP(-ZZW(:))
+      ZZX(:) = ( -PSSI(:)/PAI(:) ) * (XCCS*PLBDS(:)**XCXS)/PRHODREF(:) * (ZZW(:)**XNUS) * EXP(-ZZW(:))
 !
       ZZW(:) = ( XR0DEPSI+XR1DEPSI*PCJ(:) )*ZZX(:)
 !
@@ -187,7 +187,7 @@ WHERE( GMICRO )
 !
    ZZW(:) = 0.0
    WHERE ( (PRST(:)>XRTMIN(5)) )
-      ZZW(:) = ( PSSI(:)/(PAI(:)) ) * &
+      ZZW(:) = ( PSSI(:)/(PAI(:))/PRHODREF(:) ) * &
            ( X0DEPS*PLBDS(:)**XEX0DEPS + X1DEPS*PCJ(:)*PLBDS(:)**XEX1DEPS )
       ZZW(:) =    ZZW(:)*(0.5+SIGN(0.5,ZZW(:))) - ABS(ZZW(:))*(0.5-SIGN(0.5,ZZW(:)))
    END WHERE
diff --git a/src/MNH/lima_mixed_slow_processes.f90 b/src/MNH/lima_mixed_slow_processes.f90
index 3e217b6912520b741c7260ebfd29a8a8e61dbc6f..7c58f4910a4603219de2d1c7887db6b2760be388 100644
--- a/src/MNH/lima_mixed_slow_processes.f90
+++ b/src/MNH/lima_mixed_slow_processes.f90
@@ -181,9 +181,7 @@ INTEGER :: JMOD_IFN
 IF (LSNOW) THEN
    ZZW(:) = 0.0
    WHERE ( (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>XRTMIN(6)/PTSTEP) )
-!Correction BVIE RHODREF
-!      ZZW(:) = ( ZSSI(:)/(ZRHODREF(:)*ZAI(:)) ) *                               &
-      ZZW(:) = ( ZSSI(:)/(ZAI(:)) ) *                               &
+      ZZW(:) = ( ZSSI(:)/ZAI(:)/ZRHODREF(:) ) *                               &
                ( X0DEPG*ZLBDAG(:)**XEX0DEPG + X1DEPG*ZCJ(:)*ZLBDAG(:)**XEX1DEPG )
       ZZW(:) =         MIN( ZRVS(:),ZZW(:)      )*(0.5+SIGN(0.5,ZZW(:))) &
                      - MIN( ZRGS(:),ABS(ZZW(:)) )*(0.5-SIGN(0.5,ZZW(:)))
diff --git a/src/MNH/lima_sedimentation.f90 b/src/MNH/lima_sedimentation.f90
index 36b173a84f6ddf84e9e7a3732007891dca1b5b48..b64244b29ae182f4d547ac1c934697da9653f3c5 100644
--- a/src/MNH/lima_sedimentation.f90
+++ b/src/MNH/lima_sedimentation.f90
@@ -67,9 +67,7 @@ END MODULE MODI_LIMA_SEDIMENTATION
 !*       0.    DECLARATIONS
 !              ------------
 !
-USE MODD_PARAM_LIMA_COLD,  ONLY : XLBEXI, XLBI, XDI,                 &
-                                  XFSEDRI, XFSEDCI, XFSEDS, XEXSEDS
-USE MODD_PARAM_LIMA_MIXED, ONLY : XFSEDG, XEXSEDG, XFSEDH, XEXSEDH
+USE MODD_PARAM_LIMA_COLD,  ONLY : XLBEXI, XLBI, XDI
 USE MODD_PARAM_LIMA,       ONLY : XCEXVT, XRTMIN, XCTMIN, NSPLITSED, &
                                   XLB, XLBEX, XD, XFSEDR, XFSEDC,    &
                                   XALPHAC, XNUC
diff --git a/src/MNH/lima_tendencies.f90 b/src/MNH/lima_tendencies.f90
index cb1cf7d003382937728536acfc5b23233af8f2d1..b66b19c3d56f807c7378db7f8a85bcc003584c39 100644
--- a/src/MNH/lima_tendencies.f90
+++ b/src/MNH/lima_tendencies.f90
@@ -550,14 +550,14 @@ ZLBDS(:) = MIN( XLBDAS_MAX, ZLBDS(:))
 !
 IF (LCOLD .AND. LSNOW) THEN
    CALL LIMA_ICE_AGGREGATION_SNOW (LDCOMPUTE,                      &
-                                   ZT,                             &
+                                   ZT, PRHODREF,                   &
                                    PRIT, PRST, PCIT, ZLBDI, ZLBDS, &
                                    P_RI_AGGS, P_CI_AGGS,           &
                                    PA_RI, PA_CI, PA_RS             )
 END IF
 !
 IF (LWARM .AND. LCOLD) THEN
-   CALL LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE,                            &
+   CALL LIMA_GRAUPEL_DEPOSITION (LDCOMPUTE, PRHODREF,                  &
                                  PRGT, ZSSI, ZLBDG, ZAI, ZCJ, ZLSFACT, &
                                  P_TH_DEPG, P_RG_DEPG,                 &
                                  PA_TH, PA_RV, PA_RG                   )
diff --git a/src/MNH/modd_blank.f90 b/src/MNH/modd_blank.f90
index 420e87e1eee668458d02506ee5e0d0432cd113d8..64e2eda86cd827987744006b326ab2f9f93499b9 100644
--- a/src/MNH/modd_blank.f90
+++ b/src/MNH/modd_blank.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1996-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$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     #################
       MODULE MODD_BLANK
 !     #################
@@ -60,12 +55,12 @@ INTEGER, SAVE      :: NDUMMY1, NDUMMY2, NDUMMY3, NDUMMY4, &
                       NDUMMY5, NDUMMY6, NDUMMY7, NDUMMY8
 LOGICAL, SAVE      :: LDUMMY1, LDUMMY2, LDUMMY3, LDUMMY4, &
                       LDUMMY5, LDUMMY6, LDUMMY7, LDUMMY8
-CHARACTER*80, SAVE :: CDUMMY1, CDUMMY2, CDUMMY3, CDUMMY4, &
-                      CDUMMY5, CDUMMY6, CDUMMY7, CDUMMY8
+CHARACTER(len=80), SAVE :: CDUMMY1, CDUMMY2, CDUMMY3, CDUMMY4, &
+                           CDUMMY5, CDUMMY6, CDUMMY7, CDUMMY8
 !
 REAL,    SAVE, DIMENSION(JPDUMMY) :: XDUMMY
 INTEGER, SAVE, DIMENSION(JPDUMMY) :: NDUMMY
 LOGICAL, SAVE, DIMENSION(JPDUMMY) :: LDUMMY
-CHARACTER*80, SAVE, DIMENSION(JPDUMMY) :: CDUMMY
+CHARACTER(len=80), SAVE, DIMENSION(JPDUMMY) :: CDUMMY
 !
 END MODULE MODD_BLANK
diff --git a/src/MNH/modd_ch_aerosol0d.f90 b/src/MNH/modd_ch_aerosol0d.f90
index 53d2c2c5059f61f1b87c812f8f208001af42ad44..49ede4f6ff895d908d1d0be7800cecdae54b37c7 100644
--- a/src/MNH/modd_ch_aerosol0d.f90
+++ b/src/MNH/modd_ch_aerosol0d.f90
@@ -1,13 +1,8 @@
-!ORILAM_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence
 !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !ORILAM_LIC for details.
 !-----------------------------------------------------------------
-!--------------- special set of characters for RCS information
-!-----------------------------------------------------------------
-! $Source$ $Revision$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !!     ######################
        MODULE MODD_CH_AEROSOL0D
 !!     ######################
@@ -124,8 +119,8 @@ REAL         :: XEMISSIGJ     = 1.60   ! dispersion of primary aerosol
                                        ! emission for J mode
 REAL         :: XEMISSIGK     = 1.60   ! dispersion of primary aerosol
                                        ! emission for K mode
-CHARACTER*4  :: CRGUNIT   = 'MASS'    ! type of log-normal geometric mean radius given
-!                                     ! in nameliste (mass on number)
+CHARACTER(len=4) :: CRGUNIT   = 'MASS' ! type of log-normal geometric mean radius given
+!                                      ! in nameliste (mass on number)
 
 
 
diff --git a/src/MNH/modd_ch_model0d.f90 b/src/MNH/modd_ch_model0d.f90
index 0dd1a92ad3ac6861cbb6bf791f45064562450f0d..8eb553ae6abbdd9a3c4d939b1ca7b48b55de2cb1 100644
--- a/src/MNH/modd_ch_model0d.f90
+++ b/src/MNH/modd_ch_model0d.f90
@@ -63,17 +63,17 @@ REAL :: XTNEXTMETEO   ! time of next meteo update
 !
 !*       0.2  file names, formats and I/O channels
 !
-CHARACTER*128 :: CINITFILE  = "CHCONTROL1.nam" ! name of initial value file
-CHARACTER*128 :: CMETEOFILE = "CHCONTROL1.nam" ! meteo update file
+CHARACTER(len=128) :: CINITFILE  = "CHCONTROL1.nam" ! name of initial value file
+CHARACTER(len=128) :: CMETEOFILE = "CHCONTROL1.nam" ! meteo update file
 TYPE(TFILEDATA),POINTER :: TMETEOFILE => NULL() ! meteo update file
 !
-CHARACTER*128 :: COUTFILE    = "BOX.OUT"      ! name of final output file 
-CHARACTER*128 :: CRESULTFILE = "BOX.RESULT"   ! regular output file 
-CHARACTER*128 :: CDIAGFILE   = "BOX.DIAG"     ! diagnostics output file 
+CHARACTER(len=128) :: COUTFILE    = "BOX.OUT"      ! name of final output file
+CHARACTER(len=128) :: CRESULTFILE = "BOX.RESULT"   ! regular output file
+CHARACTER(len=128) :: CDIAGFILE   = "BOX.DIAG"     ! diagnostics output file
 !
-CHARACTER*80  :: CRUNID        = "no runid specified" ! runid for output file
-CHARACTER*40  :: CRESULTFORMAT = "(5E16.8)" ! Format for results
-CHARACTER*40  :: CDIAGFORMAT   = "(5E16.8)" ! Format for diagnostics
+CHARACTER(len=80)  :: CRUNID        = "no runid specified" ! runid for output file
+CHARACTER(len=40)  :: CRESULTFORMAT = "(5E16.8)" ! Format for results
+CHARACTER(len=40)  :: CDIAGFORMAT   = "(5E16.8)" ! Format for diagnostics
 !
 INTEGER :: NRESULTIO = -1 ! channel to be used for all regular result file I/O (set in CH_INIT_OUTPUT)
 INTEGER :: NDIAGIO   = -1 ! channel to be used for all diagnostics file I/O (set in CH_INIT_DIAGNOSTICS)
@@ -85,18 +85,18 @@ INTEGER :: NVERB     = 5  ! verbosity level: 0 (lowest) <= NVERB <= 10 (highest)
 !*       0.4  parameters for TUV
 !
 LOGICAL      :: LCH_TUV_ONLINE = .TRUE.        ! switch online/lookup table
-CHARACTER*80 :: CCH_TUV_LOOKUP = "PHOTO.TUV39" ! name of lookup table file
-CHARACTER*4  :: CCH_TUV_CLOUDS = "NONE"        ! method for calculating the
-					       ! impact of clouds on radiation
-					       ! "FOUQ" (model clouds, only 1-D)
-					       ! "RADM" (parameterized, for 3-D)
+CHARACTER(len=80) :: CCH_TUV_LOOKUP = "PHOTO.TUV39" ! name of lookup table file
+CHARACTER(len=4)  :: CCH_TUV_CLOUDS = "NONE"        ! method for calculating the
+                                                    ! impact of clouds on radiation
+                                                    ! "FOUQ" (model clouds, only 1-D)
+                                                    ! "RADM" (parameterized, for 3-D)
 REAL :: XCH_TUV_ALBNEW  = -1.  ! surface albedo (if negative the albedo
-			       ! will be read from DATAX/albedo.dat)
+                               ! will be read from DATAX/albedo.dat)
 REAL :: XCH_TUV_DOBNEW  = -1.  ! scaling factor for ozone column dobson
                                ! (if negative, no scaling will be performed,
-			       ! note: the O3 profile will be read from 
-			       ! DATAX/O3.profile, if this file is empty, the
-			       ! US standard O3 profile will be used)
+                               ! note: the O3 profile will be read from
+                               ! DATAX/O3.profile, if this file is empty, the
+                               ! US standard O3 profile will be used)
 REAL :: XCH_TUV_TUPDATE = 600. ! update frequency for TUV (in seconds)
 !
 LOGICAL :: LCH_SURFACE0D = .FALSE. ! switch to activate surface fluxes
diff --git a/src/MNH/modd_ch_solvern.f90 b/src/MNH/modd_ch_solvern.f90
index dec9d8531149a4a4d0e8779f709c477550f317a7..50e54f48a8ed87d04414a8dc62eeb0b3f524121b 100644
--- a/src/MNH/modd_ch_solvern.f90
+++ b/src/MNH/modd_ch_solvern.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-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$
-! NEC0 masdev4_7 2007/06/16 01:41:59
-!-----------------------------------------------------------------
 !!    ######################### 
       MODULE MODD_CH_SOLVER_n
 !!    #########################
@@ -43,7 +38,7 @@ TYPE CH_SOLVER_t
 !
 !*       0.1  choice of the stiff solver
 !
-  CHARACTER*32 :: CSOLVER = 'EXQSSA'  ! name of the solver to be used
+  CHARACTER(len=32) :: CSOLVER = 'EXQSSA'  ! name of the solver to be used
 !
 !*       0.2  parameters for LinSSA solver
 !
@@ -78,10 +73,10 @@ TYPE CH_SOLVER_t
 !
   INTEGER     :: NMAXORD = 5   ! maximum order for the BDF method (0<NMAXORD<=5)
   LOGICAL     :: LPETZLD = .TRUE. ! perform Petzold local error test (recommended)
-  CHARACTER*1 :: CMETHOD = "N" ! method to use non-linear system
+  CHARACTER(len=1) :: CMETHOD = "N" ! method to use non-linear system
 			     ! N or D for modified Newton iteration
                              ! F for functional iteration
-  CHARACTER*1 :: CNORM = "A"   ! type of norm to be used
+  CHARACTER(len=1) :: CNORM = "A"   ! type of norm to be used
                              ! A or D for averaged L2 norm
 			     ! M for maximum norm
   INTEGER     :: NTRACE = 0    ! level of output from D02NBF
@@ -110,7 +105,7 @@ TYPE(CH_SOLVER_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: CH_SOLVER_MODEL
 LOGICAL          , DIMENSION(JPMODELMAX),         SAVE :: CH_SOLVER_FIRST_CALL = .TRUE.
 !JUAN
 
-CHARACTER*32, POINTER :: CSOLVER=>NULL()
+CHARACTER(len=32), POINTER :: CSOLVER=>NULL()
 INTEGER, POINTER :: NSSA=>NULL()
 INTEGER, DIMENSION(:), POINTER :: NSSAINDEX=>NULL()
 REAL, POINTER :: XRTOL=>NULL()
@@ -119,8 +114,8 @@ INTEGER, POINTER :: NRELAB=>NULL()
 INTEGER, POINTER :: NPED=>NULL()
 INTEGER, POINTER :: NMAXORD=>NULL()
 LOGICAL, POINTER :: LPETZLD=>NULL()
-CHARACTER*1, POINTER :: CMETHOD=>NULL()
-CHARACTER*1, POINTER :: CNORM=>NULL()
+CHARACTER(len=1), POINTER :: CMETHOD=>NULL()
+CHARACTER(len=1), POINTER :: CNORM=>NULL()
 INTEGER, POINTER :: NTRACE=>NULL()
 REAL, POINTER :: XALPHA=>NULL()
 REAL, POINTER :: XSLOW=>NULL()
diff --git a/src/MNH/modd_diag_blank.f90 b/src/MNH/modd_diag_blank.f90
index 1f5f48e4fa6e40e89f1acb966649e6aad1687779..0fc391911738e582a82e7cf202980a03b5c1735b 100644
--- a/src/MNH/modd_diag_blank.f90
+++ b/src/MNH/modd_diag_blank.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1996-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$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ######################
       MODULE MODD_DIAG_BLANK
 !     ######################
@@ -58,6 +53,6 @@ IMPLICIT NONE
 REAL,    SAVE, DIMENSION(JPDUMMY) :: XDUMMY_DIAG
 INTEGER, SAVE, DIMENSION(JPDUMMY) :: NDUMMY_DIAG
 LOGICAL, SAVE, DIMENSION(JPDUMMY) :: LDUMMY_DIAG
-CHARACTER*80, SAVE, DIMENSION(JPDUMMY) :: CDUMMY_DIAG
+CHARACTER(len=80), SAVE, DIMENSION(JPDUMMY) :: CDUMMY_DIAG
 !
 END MODULE MODD_DIAG_BLANK
diff --git a/src/MNH/modd_frc.f90 b/src/MNH/modd_frc.f90
index a2dfc1c56630e513f63397f422411fa00967675e..0fdd3c63315b69c0bc97eaa7852cea8b93884763 100644
--- a/src/MNH/modd_frc.f90
+++ b/src/MNH/modd_frc.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1996-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$
-! MASDEV4_7 modd 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !     ###############
       MODULE MODD_FRC
 !     ###############
@@ -98,7 +93,7 @@ LOGICAL, SAVE     :: LRELAX_UV_FRC      ! enables  horizontal  wind  relaxation
 REAL,    SAVE     :: XRELAX_TIME_FRC    ! e-folding time for relaxation 
 REAL,    SAVE     :: XRELAX_HEIGHT_FRC  ! height below which relaxation
                                         ! is never applied
-CHARACTER*4, SAVE :: CRELAX_HEIGHT_TYPE ! "THGR" relax. above maximal dTH/dz
+CHARACTER(len=4), SAVE :: CRELAX_HEIGHT_TYPE ! "THGR" relax. above maximal dTH/dz
 					                    ! (but always above XRELAX_HEIGHT_FRC)
 					                    ! "FIXE" relax. above XRELAX_HEIGHT_FRC
 !
diff --git a/src/MNH/modd_mnh2lpdm.f90 b/src/MNH/modd_mnh2lpdm.f90
index db4d3a1cbe82d461cd07eaa638ca65a7e053c693..b8c053397a4c5a15d4575e730ddd5e641854e49b 100644
--- a/src/MNH/modd_mnh2lpdm.f90
+++ b/src/MNH/modd_mnh2lpdm.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-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.
+!-----------------------------------------------------------------
 !     ######spl
         MODULE MODD_MNH2LPDM
 !	##################
@@ -25,7 +26,7 @@ CHARACTER(LEN=50), SAVE                      :: CFGRI  ! Nom du fichier GRILLE.
 CHARACTER(LEN=50), SAVE                      :: CFDAT  ! Nom du fichier DATE.
 CHARACTER(LEN=28), SAVE, DIMENSION(JPMNHMAX) :: CFMNH  ! Noms des FM.
 !
-CHARACTER*10, SAVE :: CTURBPARAM="ISOTROPE"   ! ISOTROPE ou HANNA
+CHARACTER(len=10), SAVE :: CTURBPARAM="ISOTROPE"   ! ISOTROPE ou HANNA
 !
 NAMELIST/NAM_FIC/ CFMTO,CFGRI,CFDAT,CFMNH
 NAMELIST/NAM_TURB/ CTURBPARAM
diff --git a/src/MNH/modd_param_ice.f90 b/src/MNH/modd_param_ice.f90
index d6f3399b7d9b646d1aaf51b8d0fae4f57e58bb89..ddafd7516ed3313d0295d5c0b69fed2851f71783 100644
--- a/src/MNH/modd_param_ice.f90
+++ b/src/MNH/modd_param_ice.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-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.
+!-----------------------------------------------------------------
 !     ######spl
       MODULE MODD_PARAM_ICE
 !     #####################
@@ -65,14 +66,14 @@ LOGICAL, SAVE :: LCRFLIMIT !True to limit rain contact freezing to possible heat
 !
 REAL, SAVE :: XTSTEP_TS ! Approximative time step for time-splitting (0 for no time-splitting)
 !
-CHARACTER*80, SAVE :: CSUBG_RC_RR_ACCR ! subgrid rc-rr accretion
-CHARACTER*80, SAVE :: CSUBG_RR_EVAP ! subgrid rr evaporation
-CHARACTER*80, SAVE :: CSUBG_PR_PDF ! pdf for subgrid precipitation
+CHARACTER(len=80), SAVE :: CSUBG_RC_RR_ACCR ! subgrid rc-rr accretion
+CHARACTER(len=80), SAVE :: CSUBG_RR_EVAP ! subgrid rr evaporation
+CHARACTER(len=80), SAVE :: CSUBG_PR_PDF ! pdf for subgrid precipitation
 !
 LOGICAL, SAVE :: LADJ_BEFORE ! must we perform an adjustment before rain_ice call
 LOGICAL, SAVE :: LADJ_AFTER ! must we perform an adjustment after rain_ice call
-CHARACTER*1, SAVE :: CFRAC_ICE_ADJUST ! ice fraction for adjustments
-CHARACTER*1, SAVE :: CFRAC_ICE_SHALLOW_MF ! ice fraction for shallow_mf
+CHARACTER(len=1), SAVE :: CFRAC_ICE_ADJUST ! ice fraction for adjustments
+CHARACTER(len=1), SAVE :: CFRAC_ICE_SHALLOW_MF ! ice fraction for shallow_mf
 LOGICAL, SAVE :: LSEDIM_AFTER ! sedimentation done before (.FALSE.) or after (.TRUE.) microphysics
 !
 REAL, SAVE :: XSPLIT_MAXCFL ! Maximum CFL number allowed for SPLIT scheme
diff --git a/src/MNH/modd_paspol.f90 b/src/MNH/modd_paspol.f90
index a7fc26f9fa6bad30b7eae4094fbbf661956433e9..9bffdd53d7f57da1e59c56a82032d0f62bb4fb74 100644
--- a/src/MNH/modd_paspol.f90
+++ b/src/MNH/modd_paspol.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2001-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.
+!-----------------------------------------------------------------
 !     ######spl
       MODULE MODD_PASPOL
 !     ##################
@@ -28,18 +29,16 @@ LOGICAL      :: LPASPOL = .FALSE.  ! Switch to active passive pollutants
 INTEGER, PARAMETER :: JPRELEASEMAX = 100
 !
 INTEGER                               :: NRELEASE     ! Number of releases
-CHARACTER*3,  DIMENSION(JPRELEASEMAX) :: CPPINIT        ! Type of initialiZation.
+CHARACTER(len=3),  DIMENSION(JPRELEASEMAX) :: CPPINIT        ! Type of initialiZation.
 REAL,         DIMENSION(JPRELEASEMAX) :: XPPLAT         ! Latitude  of the release
 REAL,         DIMENSION(JPRELEASEMAX) :: XPPLON         ! Longitude of the release
-REAL,         DIMENSION(JPRELEASEMAX) :: XPPMASS        ! Released mass     
+REAL,         DIMENSION(JPRELEASEMAX) :: XPPMASS        ! Released mass
 REAL,         DIMENSION(JPRELEASEMAX) :: XPPBOT         ! Bottom of release
-REAL,         DIMENSION(JPRELEASEMAX) :: XPPTOP         ! Top of release   
-CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT1          ! Begin of release
-CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT2          ! Begin of constant
-                                                             ! release
-CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT3          ! End of constant 
-                                                             ! release
-CHARACTER*14, DIMENSION(JPRELEASEMAX) :: CPPT4          ! End of release 
+REAL,         DIMENSION(JPRELEASEMAX) :: XPPTOP         ! Top of release
+CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT1          ! Begin of release
+CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT2          ! Begin of constant release
+CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT3          ! End of constant release
+CHARACTER(len=14), DIMENSION(JPRELEASEMAX) :: CPPT4          ! End of release
 !
 !
 END MODULE MODD_PASPOL
diff --git a/src/MNH/modd_tmat.f90 b/src/MNH/modd_tmat.f90
index b9d6909e525d6d9880d36546ef869aa4ecb16279..a954b1a2f88079802001915892edec33216f6e73 100644
--- a/src/MNH/modd_tmat.f90
+++ b/src/MNH/modd_tmat.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2010-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.
+!-------------------------------------------------------------------------------
 !     #################
       MODULE MODD_TMAT
 !     #################
@@ -28,7 +29,8 @@
 !!    -------------
 !!
 !!    Original 23/03/2010
-!!
+!  P. Wautelet 19/04/2019: use kind(0.0d0) instead of kind=8
+!
 !-------------------------------------------------------------------------------
 !
 
@@ -57,16 +59,16 @@ REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: XIT21,XIT22
 
 
 !COMMON /CT/ dimensions : (NPN2,NPN2)
-REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE :: XTR1,XTI1
+REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE :: XTR1,XTI1
 
 
 !COMMON /CTT/ dimensions : (NPN2,NPN2)
-REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE :: XQR,XQI,XRGQR,XRGQI
+REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE :: XQR,XQI,XRGQR,XRGQI
 
 !
 !COMMON /CBESS/ dimensions (NPNG2,NPN1)
-REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE ::XJ,XY,XJR,XJI,XDJ
-REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE,SAVE ::XDJR,XDJI,XDY
+REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE ::XJ,XY,XJR,XJI,XDJ
+REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE,SAVE ::XDJR,XDJI,XDY
              
 
 END MODULE MODD_TMAT      
diff --git a/src/MNH/mode_datetime.f90 b/src/MNH/mode_datetime.f90
index 2684e11d48a4426dea6321524ba93edc6ebe080a..b6547cfa9cb7714be3b7c73a5d0f12d9b1398777 100644
--- a/src/MNH/mode_datetime.f90
+++ b/src/MNH/mode_datetime.f90
@@ -5,6 +5,7 @@
 !-----------------------------------------------------------------
 ! Modifications:
 !  P. Wautelet 22/02/2019: use MOD intrinsics with same kind for all arguments (to respect Fortran standard)
+!  P. Wautelet 19/04/2019: use modd_precision kinds
 !-----------------------------------------------------------------
 MODULE MODE_DATETIME
 !
@@ -38,29 +39,31 @@ SUBROUTINE DATETIME_TIME2REFERENCE(TPDATE,PDIST)
 !
 !Compute number of seconds since reference date (and time)
 !
+use modd_precision, only: MNHINT64
+
 TYPE(DATE_TIME), INTENT(IN)  :: TPDATE
 REAL,            INTENT(OUT) :: PDIST
 !
-INTEGER(KIND=8) :: ILEAPS                          !Number of leap days
-INTEGER(KIND=8) :: IDAYS                           !Number of days since reference date
-INTEGER(KIND=8) :: IYEARS                          !Number of years since reference date
-INTEGER(KIND=8) :: IDAY_CUR, IMONTH_CUR, IYEAR_CUR !Currrent day, month and year
-REAL            :: ZSEC                            !Current time of the day (in seconds)
-TYPE(DATE_TIME) :: TZDATE
+INTEGER(KIND=MNHINT64) :: ILEAPS                          !Number of leap days
+INTEGER(KIND=MNHINT64) :: IDAYS                           !Number of days since reference date
+INTEGER(KIND=MNHINT64) :: IYEARS                          !Number of years since reference date
+INTEGER(KIND=MNHINT64) :: IDAY_CUR, IMONTH_CUR, IYEAR_CUR !Currrent day, month and year
+REAL                   :: ZSEC                            !Current time of the day (in seconds)
+TYPE(DATE_TIME)        :: TZDATE
 !
-ILEAPS = 0
-IDAYS  = 0
+ILEAPS = 0_MNHINT64
+IDAYS  = 0_MNHINT64
 !
 TZDATE = TPDATE
 CALL DATETIME_CORRECTDATE(TZDATE)
 !
-IYEAR_CUR  = TZDATE%TDATE%YEAR
-IMONTH_CUR = TZDATE%TDATE%MONTH
-IDAY_CUR   = TZDATE%TDATE%DAY
+IYEAR_CUR  = int( TZDATE%TDATE%YEAR,  kind=MNHINT64 )
+IMONTH_CUR = int( TZDATE%TDATE%MONTH, kind=MNHINT64 )
+IDAY_CUR   = int( TZDATE%TDATE%DAY,   kind=MNHINT64 )
 ZSEC = TZDATE%TIME
 !
 !Compute number of days since beginning of the year
-IF ( ((MOD(IYEAR_CUR,4_8)==0).AND.(MOD(IYEAR_CUR,100_8)/=0)) .OR. (MOD(IYEAR_CUR,400_8)==0)) ILEAPS=1
+IF ( ((MOD(IYEAR_CUR,4_MNHINT64)==0).AND.(MOD(IYEAR_CUR,100_MNHINT64)/=0)) .OR. (MOD(IYEAR_CUR,400_MNHINT64)==0)) ILEAPS=1
 SELECT CASE(IMONTH_CUR)
   CASE(1)
     IDAYS = IDAY_CUR-1
@@ -88,8 +91,8 @@ SELECT CASE(IMONTH_CUR)
     IDAYS = IDAY_CUR-1+31+28+ILEAPS+31+30+31+30+31+31+30+31+30
 END SELECT
 !
-IYEARS = IYEAR_CUR-TPREFERENCE_DATE%TDATE%YEAR
-IF (IYEARS<0) THEN
+IYEARS = IYEAR_CUR - int( TPREFERENCE_DATE%TDATE%YEAR, kind=MNHINT64 )
+IF ( IYEARS < 0_MNHINT64 ) THEN
   CALL PRINT_MSG(NVERB_WARNING,'GEN','DATETIME_TIME2REFERENCE', &
                  'input year is smaller than reference year => result could be invalid')
 END IF
diff --git a/src/MNH/mode_tmat.f90 b/src/MNH/mode_tmat.f90
index 9de6651339a1a9b187f10cde8f36629bf357b551..6c22fdabbe8eecbd80297423af55e4db1c8a246c 100644
--- a/src/MNH/mode_tmat.f90
+++ b/src/MNH/mode_tmat.f90
@@ -2,7 +2,7 @@
 !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.
-!-----------------------------------------------------------------
+!-------------------------------------------------------------------------------
 !     algorithme initial cr�� par Michael Mishchenko (2000)
 !
 !     algorithme modifi� par Corinne Burlaud (2000) puis Olivier Brunau (2002)
@@ -18,6 +18,7 @@
 !  P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler)
 !  P. Wautelet 22/02/2019: add kind parameter for CMPLX intrinsics (if not it default to single precision)
 !  P. Wautelet 10/04/2019: replace ABORT and STOP calls by Print_msg
+!  P. Wautelet 19/04/2019: use kind(0.0d0) instead of kind=8
 !
 !****************************************************************************
 
@@ -296,7 +297,7 @@
 
       use mode_msg
 
-      IMPLICIT REAL*8 (A-H,O-Z)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
 
 !!      Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1, NPN2=2*NPN1,&
 !!          NPN4=NPN1, NPN6=NPN4+1)
@@ -304,32 +305,32 @@
 
 
       INTEGER param,oscil
-      REAL*8 SIGBETA,Fbeta
-      REAL*8 PDtotal,PDalpha,PDbeta,Poids
+      REAL(kind(0.0d0)) SIGBETA,Fbeta
+      REAL(kind(0.0d0)) PDtotal,PDalpha,PDbeta,Poids
 
-      REAL*8  LAM,MRR,MRI,Deq,X(NPNG2),W(NPNG2),S(NPNG2),SS(NPNG2),&
+      REAL(kind(0.0d0))  LAM,MRR,MRI,Deq,X(NPNG2),W(NPNG2),S(NPNG2),SS(NPNG2),&
              AN(NPN1),R(NPNG2),DR(NPNG2),&
              DDR(NPNG2),DRR(NPNG2),DRI(NPNG2),ANN(NPN1,NPN1)
 
-      REAL*8 NUMZ,DENZ,NUMTZ,DENTZ,ZDRT,NTotal
-      REAL*8 NUMD,DEND,DELTA,NUMTD,DENTD,DELTAT
-      REAL*8 PAS,KDP
+      REAL(kind(0.0d0)) NUMZ,DENZ,NUMTZ,DENTZ,ZDRT,NTotal
+      REAL(kind(0.0d0)) NUMD,DEND,DELTA,NUMTD,DENTD,DELTAT
+      REAL(kind(0.0d0)) PAS,KDP
 
-      REAL*8 THET0,THET,Elev,AXI
+      REAL(kind(0.0d0)) THET0,THET,Elev,AXI
 
-      REAL*8 MYS11cr,MYS22cr
+      REAL(kind(0.0d0)) MYS11cr,MYS22cr
 
 
-!!      REAL*8 TR1(NPN2,NPN2),TI1(NPN2,NPN2)
+!!      REAL(kind(0.0d0)) TR1(NPN2,NPN2),TI1(NPN2,NPN2)
 !!     REAL*4 RT11(NPN6,NPN4,NPN4),RT12(NPN6,NPN4,NPN4),&
 !!          RT21(NPN6,NPN4,NPN4),RT22(NPN6,NPN4,NPN4),&
 ! !         IT11(NPN6,NPN4,NPN4),IT12(NPN6,NPN4,NPN4),&
 !!          IT21(NPN6,NPN4,NPN4),IT22(NPN6,NPN4,NPN4)
-      COMPLEX*16 S11,S12,S21,S22
-      COMPLEX*16 S11u,S12u,S21u,S22u
+      COMPLEX(kind(0.0d0)) S11,S12,S21,S22
+      COMPLEX(kind(0.0d0)) S11u,S12u,S21u,S22u
 
-      REAL*8 S11carre,S22carre
-      COMPLEX*16 NUMrhoAB,NUMTrhoAB
+      REAL(kind(0.0d0)) S11carre,S22carre
+      COMPLEX(kind(0.0d0)) NUMrhoAB,NUMTrhoAB
       
 !!      COMMON /CT/ TR1,TI1
 !!      COMMON /TMAT/ RT11,RT12,RT21,RT22,IT11,IT12,IT21,IT22
@@ -1171,17 +1172,17 @@
 
 !c      INCLUDE 'ampld.par.f'
 !!      Parameter (NPN1=200,NPN4=NPN1, NPN6=NPN4+1)
-      IMPLICIT REAL*8 (A-B,D-H,O-Z), COMPLEX*16 (C)
-      REAL*8 AL(3,2),AL1(3,2),AP(2,3),AP1(2,3),B(3,3),&
+      IMPLICIT REAL(kind(0.0d0)) (A-B,D-H,O-Z), COMPLEX(kind(0.0d0)) (C)
+      REAL(kind(0.0d0)) AL(3,2),AL1(3,2),AP(2,3),AP1(2,3),B(3,3),&
             R(2,2),R1(2,2),C(3,2),CA,CB,CT,CP,CTP,CPP,CT1,CP1,&
             CTP1,CPP1
-!C       REAL*8 ZDR,NUM,DEN
-      REAL*8 DV1(NPN6),DV2(NPN6),DV01(NPN6),DV02(NPN6)
+!C       REAL(kind(0.0d0)) ZDR,NUM,DEN
+      REAL(kind(0.0d0)) DV1(NPN6),DV2(NPN6),DV01(NPN6),DV02(NPN6)
 !!      REAL*4 TR11(NPN6,NPN4,NPN4),TR12(NPN6,NPN4,NPN4),&
 !!          TR21(NPN6,NPN4,NPN4),TR22(NPN6,NPN4,NPN4),&
 !!          TI11(NPN6,NPN4,NPN4),TI12(NPN6,NPN4,NPN4),&
 !!          TI21(NPN6,NPN4,NPN4),TI22(NPN6,NPN4,NPN4)
-      COMPLEX*16 CAL(NPN4,NPN4),VV,VH,HV,HH
+      COMPLEX(kind(0.0d0)) CAL(NPN4,NPN4),VV,VH,HV,HH
 !!      COMMON /TMAT/ TR11,TR12,TR21,TR22,TI11,TI12,TI21,TI22
 
       IF (ALPHA.LT.0D0.OR.ALPHA.GT.360D0.OR.&
@@ -1477,8 +1478,8 @@
 
       USE MODD_TMAT,   ONLY: NPN1,NPN4,NPN6
 !!      Parameter (NPN1=200,NPN4=NPN1, NPN6=NPN4+1)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 DV1(NPN6), DV2(NPN6)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) DV1(NPN6), DV2(NPN6)
 
       DO N=1,NMAX
       DV1(N)=0D0
@@ -1550,9 +1551,9 @@
       SUBROUTINE CONST(NGAUSS,NMAX,X,W,AN,ANN,S,SS)
 
       USE MODD_TMAT,   ONLY: NPN1,NPNG1,NPNG2
-      IMPLICIT REAL*8 (A-H,O-Z)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
 !!      Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1)
-      REAL*8 X(NPNG2),W(NPNG2),&
+      REAL(kind(0.0d0)) X(NPNG2),W(NPNG2),&
              S(NPNG2),SS(NPNG2),&
              AN(NPN1),ANN(NPN1,NPN1),DD(NPN1)
  
@@ -1592,8 +1593,8 @@
        USE MODD_TMAT,   ONLY: NPN1,NPNG1,NPNG2
               
 !!      Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8  X(NPNG2),R(NPNG2),DR(NPNG2),MRR,MRI,LAM,&
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0))  X(NPNG2),R(NPNG2),DR(NPNG2),MRR,MRI,LAM,&
              Z(NPNG2),ZR(NPNG2),ZI(NPNG2),&
              DDR(NPNG2),DRR(NPNG2),DRI(NPNG2)
              
@@ -1648,8 +1649,8 @@
 !C**********************************************************************
  
       SUBROUTINE RSP1(X,NG,NGAUSS,REV,EPS,R,DR)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 X(NG),R(NG),DR(NG)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) X(NG),R(NG),DR(NG)
 
       A=REV*EPS**(1D0/3D0)
       AA=A*A
@@ -1678,8 +1679,8 @@
 
       USE MODD_TMAT,ONLY : XJ,XY,XJR,XJI,XDJ,XDY,XDJR,XDJI,NPN1,NPNG1,NPNG2
 !!      Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 X(NG),XR(NG),XI(NG),&
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) X(NG),XR(NG),XI(NG),&
 !!             J(NPNG2,NPN1),Y(NPNG2,NPN1),JR(NPNG2,NPN1),&
 !!             JI(NPNG2,NPN1),DJ(NPNG2,NPN1),DY(NPNG2,NPN1),&
 !!             DJR(NPNG2,NPN1),DJI(NPNG2,NPN1),&
@@ -1717,8 +1718,8 @@
 !C**********************************************************************
  
       SUBROUTINE RJB(X,Y,U,NMAX,NNMAX)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 Y(NMAX),U(NMAX),Z(800)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) Y(NMAX),U(NMAX),Z(800)
 
       L=NMAX+NNMAX
       XX=1D0/X
@@ -1749,8 +1750,8 @@
 !C**********************************************************************
  
       SUBROUTINE RYB(X,Y,V,NMAX)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 Y(NMAX),V(NMAX)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) Y(NMAX),V(NMAX)
 
       C=COS(X)
       S=SIN(X)
@@ -1787,9 +1788,9 @@
 
       USE MODD_TMAT,ONLY:NPN1
 !!      Parameter (NPN1=200)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 YR(NMAX),YI(NMAX),UR(NMAX),UI(NMAX)
-      REAL*8 CYR(NPN1),CYI(NPN1),CZR(1200),CZI(1200)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) YR(NMAX),YI(NMAX),UR(NMAX),UI(NMAX)
+      REAL(kind(0.0d0)) CYR(NPN1),CYI(NPN1),CZR(1200),CZI(1200)
 
       L=NMAX+NNMAX
       XRXI=1D0/(XR*XR+XI*XI)
@@ -1869,8 +1870,8 @@
                            NPN1,NPNG1,NPNG2,NPN2,NPN4,NPN6
 !!      Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1, NPN2=2*NPN1,&   
 !!          NPN4=NPN1,NPN6=NPN4+1)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8  X(NPNG2),W(NPNG2),AN(NPN1),&
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0))  X(NPNG2),W(NPNG2),AN(NPN1),&
              R(NPNG2),DR(NPNG2),SIG(NPN2),&
 !!             J(NPNG2,NPN1),Y(NPNG2,NPN1),&
 !!             JR(NPNG2,NPN1),JI(NPNG2,NPN1),DJ(NPNG2,NPN1),&
@@ -1880,12 +1881,12 @@
              D1(NPNG2,NPN1),D2(NPNG2,NPN1),&
              DRI(NPNG2),RR(NPNG2),&
              DV1(NPN1),DV2(NPN1)
-        REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22
-        REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22
-        REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22
-        REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22
+        REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22
+        REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22
+        REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22
+        REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22
 
-     REAL*8  ANN(NPN1,NPN1),&
+     REAL(kind(0.0d0))  ANN(NPN1,NPN1),&
 !!             QR(NPN2,NPN2),QI(NPN2,NPN2),&
 !!             RGQR(NPN2,NPN2),RGQI(NPN2,NPN2),&
              TQR(NPN2,NPN2),TQI(NPN2,NPN2),&
@@ -2129,8 +2130,8 @@ DEALLOCATE(IG22)
 !c      INCLUDE 'ampld.par.f'
 !!      Parameter (NPN1=200, NPNG1=600, NPNG2=2*NPNG1, NPN2=2*NPN1, & 
 !!           NPN4=NPN1, NPN6=NPN4+1)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8  X(NPNG2),W(NPNG2),AN(NPN1),S(NPNG2),SS(NPNG2),&
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0))  X(NPNG2),W(NPNG2),AN(NPN1),S(NPNG2),SS(NPNG2),&
              R(NPNG2),DR(NPNG2),SIG(NPN2),&
 !!             J(NPNG2,NPN1),Y(NPNG2,NPN1),&
 !!             JR(NPNG2,NPN1),JI(NPNG2,NPN1),DJ(NPNG2,NPN1),&
@@ -2140,12 +2141,12 @@ DEALLOCATE(IG22)
              D1(NPNG2,NPN1),D2(NPNG2,NPN1),&
              DRI(NPNG2),DS(NPNG2),DSS(NPNG2),RR(NPNG2),&
              DV1(NPN1),DV2(NPN1)
-      REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22
-      REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22
-      REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22
-      REAL(KIND=8),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22
+      REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: R11,R12,R21,R22
+      REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: I11,I12,I21,I22
+      REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: RG11,RG12,RG21,RG22
+      REAL(kind(0.0d0)),DIMENSION(:,:),ALLOCATABLE :: IG11,IG12,IG21,IG22
 
-      REAL*8  ANN(NPN1,NPN1),&
+      REAL(kind(0.0d0))  ANN(NPN1,NPN1),&
 !!             QR(NPN2,NPN2),QI(NPN2,NPN2),&
 !!             RGQR(NPN2,NPN2),RGQI(NPN2,NPN2),&
              TQR(NPN2,NPN2),TQI(NPN2,NPN2),&
@@ -2458,8 +2459,8 @@ DEALLOCATE(IG22)
 
       USE MODD_TMAT, ONLY:NPN1
 !!      Parameter (NPN1=200)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 DV1(NPN1),DV2(NPN1)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) DV1(NPN1),DV2(NPN1)
  
       A=1D0
       QS=SQRT(1D0-X*X)
@@ -2523,12 +2524,12 @@ DEALLOCATE(IG22)
 
 
 !!      Parameter (NPN1=200, NPN2=2*NPN1)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 F(NPN2,NPN2),&
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) F(NPN2,NPN2),&
 !!            QR(NPN2,NPN2),QI(NPN2,NPN2),&
 !!            RGQR(NPN2,NPN2),RGQI(NPN2,NPN2),&
             A(NPN2,NPN2),C(NPN2,NPN2),D(NPN2,NPN2),E(NPN2,NPN2)
-!!      REAL*8 TR1(NPN2,NPN2),TI1(NPN2,NPN2)
+!!      REAL(kind(0.0d0)) TR1(NPN2,NPN2),TI1(NPN2,NPN2)
 !c      INTEGER IPVT(NPN2)
 !!      COMMON /CT/ TR1,TI1
 !!      COMMON /CTT/ QR,QI,RGQR,RGQI
@@ -2587,7 +2588,7 @@ DEALLOCATE(IG22)
 !C********************************************************************
       SUBROUTINE PROD(A,B,C,NDIM,N)
 
-      REAL*8 A(NDIM,N),B(NDIM,N),C(NDIM,N),cij
+      REAL(kind(0.0d0)) A(NDIM,N),B(NDIM,N),C(NDIM,N),cij
 
       DO I=1,N
           DO J=1,N
@@ -2607,9 +2608,9 @@ DEALLOCATE(IG22)
       SUBROUTINE INV1(NMAX,F,A)
 
       USE MODD_TMAT,ONLY : NPN1,NPN2
-      IMPLICIT REAL*8 (A-H,O-Z)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
 !!      Parameter (NPN1=200, NPN2=2*NPN1)
-      REAL*8  A(NPN2,NPN2),F(NPN2,NPN2),B(NPN1),&
+      REAL(kind(0.0d0))  A(NPN2,NPN2),F(NPN2,NPN2),B(NPN1),&
              WORK(NPN1),Q1(NPN1,NPN1),Q2(NPN1,NPN1),&
              P1(NPN1,NPN1),P2(NPN1,NPN1)
       INTEGER IPVT(NPN1),IND1(NPN1),IND2(NPN1)
@@ -2663,8 +2664,8 @@ DEALLOCATE(IG22)
 !C*********************************************************************
  
       SUBROUTINE INVERT(NDIM,N,A,X,COND,IPVT,WORK,B)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 A(NDIM,N),X(NDIM,N),WORK(N),B(N)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) A(NDIM,N),X(NDIM,N),WORK(N),B(N)
       INTEGER IPVT(N)
 
       CALL DECOMP (NDIM,N,A,COND,IPVT,WORK)
@@ -2693,8 +2694,8 @@ DEALLOCATE(IG22)
 !C********************************************************************
  
       SUBROUTINE DECOMP (NDIM,N,A,COND,IPVT,WORK)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 A(NDIM,N),COND,WORK(N)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) A(NDIM,N),COND,WORK(N)
       INTEGER IPVT(N)
 
       IPVT(N)=1
@@ -2804,8 +2805,8 @@ DEALLOCATE(IG22)
 !C**********************************************************************
  
       SUBROUTINE SOLVE (NDIM,N,A,B,IPVT)
-      IMPLICIT REAL*8 (A-H,O-Z)
-      REAL*8 A(NDIM,N),B(N)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,O-Z)
+      REAL(kind(0.0d0)) A(NDIM,N),B(N)
       INTEGER IPVT(N)
 
       IF (N.NE.1) THEN
@@ -2846,8 +2847,8 @@ DEALLOCATE(IG22)
 !C**********************************************************************
  
       SUBROUTINE GAUSS(N,IND1,IND2,Z,W)
-      IMPLICIT REAL*8 (A-H,P-Z)
-      REAL*8 Z(N),W(N)
+      IMPLICIT REAL(kind(0.0d0)) (A-H,P-Z)
+      REAL(kind(0.0d0)) Z(N),W(N)
       DATA A,B,C /1D0,2D0,3D0/
     
       IND=MOD(N,2)
@@ -2915,11 +2916,3 @@ DEALLOCATE(IG22)
 
       RETURN
       END
-
-
-
-
-
-
-
-
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 6f1f14dadc2d1211746f821d26fa711514fd37ed..12e6b74feee0ee1690c2041dc1a22c7413841360 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -256,9 +256,9 @@ END MODULE MODI_MODEL_n
 !  P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines
 !                          (nsubfiles_ioz is now determined in IO_File_add2list)
 !!                   02/2019 C.Lac add rain fraction as an output field
-!!      Bielli S. 02/2019  Sea salt : significant sea wave height influences salt emission; 5 salt modes
 !  P. Wautelet 28/03/2019: use MNHTIME for time measurement variables
 !  P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -269,7 +269,7 @@ USE MODD_ADV_n
 USE MODD_AIRCRAFT_BALLOON
 USE MODD_BAKOUT
 USE MODD_BIKHARDT_n
-USE MODD_BLANK 
+USE MODD_BLANK
 USE MODD_BUDGET
 USE MODD_CH_AERO_n,      ONLY: XSOLORG, XMI
 USE MODD_CH_MNHC_n,      ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, &
@@ -280,7 +280,6 @@ USE MODD_DRAG_n
 USE MODD_CLOUDPAR_n
 USE MODD_CONF
 USE MODD_CONF_n
-USE MODD_CST, ONLY: XMD
 USE MODD_CURVCOR_n
 USE MODD_DEEP_CONVECTION_n
 USE MODD_DIM_n
@@ -317,9 +316,9 @@ USE MODD_PARAM_C1R3,     ONLY: NSEDI => LSEDI, NHHONI => LHHONI
 USE MODD_PARAM_C2R2,     ONLY: NSEDC => LSEDC, NRAIN => LRAIN, NACTIT => LACTIT,LACTTKE,LDEPOC
 USE MODD_PARAMETERS
 USE MODD_PARAM_ICE,      ONLY: LWARM,LSEDIC,LCONVHG,LDEPOSC
-USE MODD_PARAM_LIMA,     ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, LACTI,  &
-                               MACTIT => LACTIT, LSCAV, NMOD_CCN, LCOLD,               &
-                               MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL,      &
+USE MODD_PARAM_LIMA,     ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, &
+                               MACTIT => LACTIT, LSCAV, LCOLD,                 &
+                               MSEDI => LSEDI, MHHONI => LHHONI, LHAIL,        &
                                XRTMIN_LIMA=>XRTMIN, MACTTKE=>LACTTKE
 USE MODD_BLOWSNOW_n
 USE MODD_BLOWSNOW
@@ -436,10 +435,9 @@ LOGICAL, INTENT(INOUT):: OEXIT
 !
 INTEGER :: ILUOUT      ! Logical unit number for the output listing
 INTEGER :: IIU,IJU,IKU ! array size in first, second and third dimensions
-INTEGER :: IIB,IIE,IJB,IJE,IKB,IKE ! index values for the physical subdomain
+INTEGER :: IIB,IIE,IJB,IJE ! index values for the physical subdomain
 INTEGER :: JSV,JRR     ! Loop index for scalar and moist variables
 INTEGER  :: INBVAR              ! number of HALO2_lls to allocate
-INTEGER  :: IRESP               ! return code in FM routines
 INTEGER  :: IINFO_ll            ! return code of parallel routine
 INTEGER :: IVERB                ! LFI verbosity level
 LOGICAL :: GSTEADY_DMASS        ! conditional call to mass computation
@@ -450,29 +448,6 @@ REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME_STEP,ZTIME_STEP_PTS
 CHARACTER                 :: YMI
 INTEGER                   :: IPOINTS
 CHARACTER(len=16)         :: YTCOUNT,YPOINTS
-
-REAL         :: ZSTAT_CSTORE,ZSTAT_CBOUND,ZSTAT_CGUESS,ZSTAT_CADV,ZSTAT_CSOURCES
-REAL         :: ZSTAT_CDIFF,ZSTAT_CRELAX,ZSTAT_CPARAM
-REAL         :: ZSTAT_CSPECTRA,ZSTAT_CRAD_BOUND,ZSTAT_CPRESS
-REAL         :: ZSTAT_CCLOUD,ZSTAT_CSTEP_SWA,ZSTAT_CSTEP_MISC
-REAL         :: ZSTAT_CCOUPL,ZSTAT_CSTEP_BUD,ZSTAT_CSTEP_CDRAG
-REAL         :: ZSTAT_CSTEP_CTRACER,ZSTAT_CSTEP_CELEC
-REAL         :: SCONV_CTURB,ZSTAT_C1WAY,ZSTAT_C2WAY,ZSTAT_CMAFL
-REAL         :: ZSTAT_CRAD,ZSTAT_CDCONV,ZSTAT_CGROUND,ZSTAT_CHALO
-REAL         :: ZSTAT_CFORCING,ZSTAT_CNUDGING,ZSTAT_CCHEM
-!
-REAL         :: ZPERCALL,ZPRICE
-REAL         :: ZPERCSTORE,ZPERCBOUND,ZPERCGUESS,ZPERCADV,ZPERCSOURCES,ZPERCDRAG
-REAL         :: ZPERCDIFF,ZPERCRELAX,ZPERCPARAM
-REAL         :: ZPERCSPECTRA,ZPERCRAD_BOUND,ZPERCPRESS
-REAL         :: ZPERCCLOUD,ZPERCSTEP_SWA,ZPERCSTEP_MISC
-REAL         :: ZPERCELEC
-REAL         :: ZPERCCOUPL,ZPERCSTEP_BUD
-REAL         :: ZPERCTURB,ZPERC1WAY,ZPERC2WAY
-REAL         :: ZPERCRAD,ZPERCSHADOWS,ZPERCKAFR,ZPERCGROUND,ZPERCHALO,ZPERCMAFL,ZPERTRACER
-REAL         :: ZPERCFORCING,ZPERCNUDGING,ZPERCCHEM
-REAL         :: ZTSTEP_UVW   ! Double timestep except for cold start (single)
-REAL         :: ZTSTEP_MET,ZTSTEP_SV ! Effective time step for advection
 !
 INTEGER :: ISYNCHRO          ! model synchronic index relative to its father
                              ! = 1  for the first time step in phase with DAD
@@ -531,24 +506,12 @@ LOGICAL :: KSEDC
 LOGICAL :: KACTIT
 LOGICAL :: KSEDI
 LOGICAL :: KHHONI
-REAL :: TEMPS
-INTEGER :: NSV_END
-CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=LEN_HREC)  :: YRECFM     ! Name of the desired field in LFIFM file
-!
-INTEGER             :: ILENG      ! Length of comment string in LFIFM file
-INTEGER             :: IGRID      ! C-grid indicator in LFIFM file
-INTEGER             :: ILENCH     ! Length of comment string in LFIFM file
 !
 REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZRUS,ZRVS,ZRWS
 REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZPABST !To give pressure at t 
                                                      ! (and not t+1) to resolved_cloud
 REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZJ
 !
-! for various testing
-INTEGER :: IK
-REAL, DIMENSION(SIZE(XTHT,1),SIZE(XTHT,2),SIZE(XTHT,3)) :: ZTMP
-!
 TYPE(LIST_ll), POINTER :: TZFIELDC_ll   ! list of fields to exchange
 TYPE(HALO2LIST_ll), POINTER :: TZHALO2C_ll   ! list of fields to exchange
 LOGICAL :: GCLD                     ! conditionnal call for dust wet deposition
@@ -613,8 +576,6 @@ ILUOUT = TLUOUT%NLU
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
 IKU=NKMAX+2*JPVEXT
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
-IKB=1+JPVEXT
-IKE=IKU-JPVEXT
 !
 IF (IMI==1) THEN
   GSTEADY_DMASS=LSTEADYLS
@@ -1116,8 +1077,8 @@ IF (NMODEL>1) THEN
   DPTR_GMASKkids=>GMASKkids
   !
   CALL TWO_WAY(     NRR,NSV,KTCOUNT,DPTR_XRHODJ,IMI,XTSTEP,                                    &
-       DPTR_XUM ,DPTR_XVM ,DPTR_XWM , DPTR_XTHM, DPTR_XRM, DPTR_XTKEM, DPTR_XSVM,              &        
-       DPTR_XRUS,DPTR_XRVS,DPTR_XRWS,DPTR_XRTHS,DPTR_XRRS,DPTR_XRTKES,DPTR_XRSVS,              &
+       DPTR_XUM ,DPTR_XVM ,DPTR_XWM , DPTR_XTHM, DPTR_XRM,DPTR_XSVM,                           &
+       DPTR_XRUS,DPTR_XRVS,DPTR_XRWS,DPTR_XRTHS,DPTR_XRRS,DPTR_XRSVS,                          &
        DPTR_XINPRC,DPTR_XINPRR,DPTR_XINPRS,DPTR_XINPRG,DPTR_XINPRH,DPTR_XPRCONV,DPTR_XPRSCONV, &
        DPTR_XDIRFLASWD,DPTR_XSCAFLASWD,DPTR_XDIRSRFSWD,DPTR_GMASKkids           )
 END IF
diff --git a/src/MNH/modn_ch_mnhcn.f90 b/src/MNH/modn_ch_mnhcn.f90
index 9c894f34b4502f1dc7b1b213e0cae0a930ca9689..e695fa5362242ad6fd4a987f4e7f77b064836c0f 100644
--- a/src/MNH/modn_ch_mnhcn.f90
+++ b/src/MNH/modn_ch_mnhcn.f90
@@ -1,12 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-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: /home/cvsroot/MNH-VX-Y-Z/src/MNH/modn_ch_mnhcn.f90,v $ $Revision: 1.2.4.1.2.1.12.2 $ $Date: 2014/01/09 15:01:56 $
-!-----------------------------------------------------------------
 !!    #####################
       MODULE MODN_CH_MNHC_n
 !!    #####################
@@ -77,22 +73,22 @@ LOGICAL  :: LCH_PH
 lOGICAL  :: LCH_RET_ICE
 REAL  :: XCH_PHINIT
 REAL  :: XRTMIN_AQ
-CHARACTER(LEN=80)  :: CCHEM_INPUT_FILE
-CHARACTER(LEN=10)  :: CCH_TDISCRETIZATION
+CHARACTER(LEN=80)   :: CCHEM_INPUT_FILE
+CHARACTER(LEN=10)   :: CCH_TDISCRETIZATION
 INTEGER  :: NCH_SUBSTEPS
 LOGICAL  :: LCH_TUV_ONLINE
-CHARACTER*80  :: CCH_TUV_LOOKUP
-CHARACTER*4  :: CCH_TUV_CLOUDS
+CHARACTER(len=80)   :: CCH_TUV_LOOKUP
+CHARACTER(len=4)    :: CCH_TUV_CLOUDS
 REAL  :: XCH_TUV_ALBNEW
 REAL  :: XCH_TUV_DOBNEW
 REAL  :: XCH_TUV_TUPDATE
-CHARACTER*3  :: CCH_VEC_METHOD
+CHARACTER(len=3)    :: CCH_VEC_METHOD
 INTEGER  :: NCH_VEC_LENGTH
 REAL  :: XCH_TS1D_TSTEP
-CHARACTER*80  :: CCH_TS1D_COMMENT
-CHARACTER*80  :: CCH_TS1D_FILENAME
-CHARACTER(LEN=1024)   :: CSPEC_PRODLOSS 
-CHARACTER(LEN=1024)   :: CSPEC_BUDGET 
+CHARACTER(len=80)   :: CCH_TS1D_COMMENT
+CHARACTER(len=80)   :: CCH_TS1D_FILENAME
+CHARACTER(LEN=1024) :: CSPEC_PRODLOSS
+CHARACTER(LEN=1024) :: CSPEC_BUDGET
 !
 NAMELIST/NAM_CH_MNHCn/LUSECHEM,LUSECHAQ,LUSECHIC,LCH_INIT_FIELD,LCH_CONV_SCAV,&
                       LCH_CONV_LINOX,LCH_PH,LCH_RET_ICE,XCH_PHINIT,XRTMIN_AQ, &
diff --git a/src/MNH/modn_ch_solvern.f90 b/src/MNH/modn_ch_solvern.f90
index 33f760f1ce0dcaca223daf1b4197e934aab4ab08..245c94f81c204d4a2dc0e0ae9774edfa7e5d93db 100644
--- a/src/MNH/modn_ch_solvern.f90
+++ b/src/MNH/modn_ch_solvern.f90
@@ -1,13 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1995-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$
-! MASDEV4_7 modn 2006/05/18 13:07:25
-!-----------------------------------------------------------------
 !!    ######################### 
       MODULE MODN_CH_SOLVER_n
 !!    #########################
@@ -53,7 +48,7 @@ USE MODD_CH_SOLVER_n, ONLY: &
 !
 IMPLICIT NONE
 !
-CHARACTER*32  :: CSOLVER
+CHARACTER(len=32)  :: CSOLVER
 INTEGER  :: NSSA
 INTEGER, DIMENSION(1000)  :: NSSAINDEX
 REAL  :: XRTOL
@@ -62,8 +57,8 @@ INTEGER  :: NRELAB
 INTEGER  :: NPED
 INTEGER  :: NMAXORD
 LOGICAL  :: LPETZLD
-CHARACTER*1  :: CMETHOD
-CHARACTER*1  :: CNORM
+CHARACTER(len=1)  :: CMETHOD
+CHARACTER(len=1)  :: CNORM
 INTEGER  :: NTRACE
 REAL  :: XALPHA
 REAL  :: XSLOW
diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90
index 91602892b3e70094823766e54d2c7d3ea0bc082c..05748143636d6b59a7dea9c663d78cd60636da21 100644
--- a/src/MNH/prandtl.f90
+++ b/src/MNH/prandtl.f90
@@ -34,7 +34,7 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening
 LOGICAL,                INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
                                  ! diagnostic fields in the syncronous FM-file
-CHARACTER*4           , INTENT(IN)   ::  HTURBDIM     ! Kind of turbulence param.
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! Kind of turbulence param.
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PDXX,PDYY,PDZZ,PDZX,PDZY
                                                   ! metric coefficients
@@ -237,7 +237,7 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening
 LOGICAL,                INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
                                  ! diagnostic fields in the syncronous FM-file
-CHARACTER*4           , INTENT(IN)   ::  HTURBDIM     ! Kind of turbulence param.
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! Kind of turbulence param.
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 REAL, DIMENSION(:,:,:), INTENT(IN)   ::  PDXX,PDYY,PDZZ,PDZX,PDZY
                                                   ! metric coefficients
diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90
index b5aba7c9534ab6f71a48987110735d6947f14f3e..3422ec0bb0faf09a84b91e15259fc2b29cf7555c 100644
--- a/src/MNH/prep_ideal_case.f90
+++ b/src/MNH/prep_ideal_case.f90
@@ -315,6 +315,7 @@
 !  P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables
 !  P. Wautelet 28/03/2019: use MNHTIME for time measurement variables
 !  P. Wautelet 28/03/2019: use TFILE instead of unit number for set_iluout_timing
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !-------------------------------------------------------------------------------
 !
 !*       0.   DECLARATIONS
@@ -340,8 +341,7 @@ USE MODD_DYN_n
 USE MODD_LBC_n
 USE MODD_LSFIELD_n
 USE MODD_PARAM_n
-USE MODD_CH_MNHC_n, ONLY:  LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH,  &
-                           LCH_INIT_FIELD, CCHEM_INPUT_FILE 
+USE MODD_CH_MNHC_n,        ONLY:  LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH, LCH_INIT_FIELD
 USE MODD_CH_AEROSOL,ONLY:  LORILAM, CORGANIC, LVARSIGI, LVARSIGJ, LINITPM, XINIRADIUSI, &
                            XINIRADIUSJ, XINISIGI, XINISIGJ, XN0IMIN, XN0JMIN, CRGUNIT
 USE MODD_DUST,      ONLY:  LDUST, NMODE_DST, CRGUNITD, XINISIG, XINIRADIUS, XN0MIN 
@@ -351,8 +351,7 @@ USE MODD_LUNIT,     ONLY:  TLUOUT0, TOUTDATAFILE
 USE MODD_LUNIT_n
 USE MODD_IO,        ONLY: NIO_VERB, NVERB_DEBUG, TFILE_DUMMY, TFILE_OUTPUTLISTING
 USE MODD_CONF_n
-USE MODD_NSV,      ONLY : NSV,NSV_CHEM,           &
-                          NSV_DSTEND, NSV_DSTBEG
+USE MODD_NSV,              ONLY: NSV
 use modd_precision, only: LFIINT, MNHREAL_MPI, MNHTIME
 !
 USE MODN_BLANK
@@ -485,9 +484,6 @@ LOGICAL            :: LGEOSBAL =.FALSE. ! Logical to satisfy the geostrophic
                                         ! balance
                                         ! .TRUE. for geostrophic balance
                                         ! .FALSE. to ignore this balance
-LOGICAL            :: LPV_PERT =.FALSE. ! Logical to add a PV pertubation
-LOGICAL            :: LRMV_BL  =.FALSE. ! Logical to remove the boundary layer
-                                        ! before PV inversion
 LOGICAL            :: LSHIFT   =.FALSE.  ! flag to perform vertical shift or not.        
 CHARACTER(LEN=3)   :: CFUNU ='ZZZ'      ! CHARACTER STRING for variation of
                                         ! U in y direction
@@ -538,7 +534,6 @@ LOGICAL  :: LREAD_ZS = .TRUE.,                & ! switch to use orography
 INTEGER           :: NSLEVE   =12         ! number of iteration for smooth orography
 REAL              :: XSMOOTH_ZS = XUNDEF  ! optional uniform smooth orography for SLEVE coordinate
 CHARACTER(LEN=28) :: YPGD_NAME, YPGD_DAD_NAME   ! general information
-CHARACTER(LEN=8)  :: YKIND                      ! Kind of radiosounding data
 CHARACTER(LEN=2)  :: YPGD_TYPE
 !
 INTEGER           :: IINFO_ll                   ! return code of // routines
@@ -561,15 +556,10 @@ REAL                :: ZDIST
 REAL(kind=MNHTIME), DIMENSION(2) :: ZTIME1, ZTIME2, ZEND, ZTOT
 CHARACTER                 :: YMI
 INTEGER                   :: IMI
-INTEGER::JK                                 
 !JUAN TIMING
 !
 REAL, DIMENSION(:),   ALLOCATABLE :: ZZS_ll
-INTEGER                           :: IJ 
-INTEGER           :: NZSFILTER=1          ! number of iteration for filter for fine   orography
-LOGICAL           :: LHSLOP=.FALSE.       ! filtering of slopes higher than XHSLOP   
-REAL              :: XHSLOP=1.2           ! if LHSLOP filtering of slopes higher than XHSLOP
-
+INTEGER                           :: IJ
 !
 REAL              :: ZZS_MAX, ZZS_MAX_ll
 INTEGER           :: IJPHEXT
@@ -582,8 +572,8 @@ TYPE(TFILEDATA),POINTER :: TZEXPREFILE  => NULL()
 NAMELIST/NAM_CONF_PRE/ LTHINSHELL,LCARTESIAN,    &! Declarations in MODD_CONF
                        LPACK,                    &!
                        NVERB,CIDEAL,CZS,         &!+global variables initialized
-                       LBOUSS,LPERTURB,LPV_PERT, &! at their declarations
-                       LRMV_BL,LFORCING,CEQNSYS, &! at their declarations
+                       LBOUSS,LPERTURB,          &! at their declarations
+                       LFORCING,CEQNSYS,         &! at their declarations
                        LSHIFT,L2D_ADV_FRC,L2D_REL_FRC, &
                        NHALO , JPHEXT
 NAMELIST/NAM_GRID_PRE/ XLON0,XLAT0,            & ! Declarations in MODD_GRID
@@ -1462,15 +1452,6 @@ END IF
 !*       5.2    Prognostic variables (not multiplied by  rhoJ) : u,v,w,theta,r
 !               and 1D anelastic reference state
 !
-IF(LPV_PERT .AND. .NOT.(LGEOSBAL)) THEN
-   !callabortstop
-  CALL PRINT_MSG(NVERB_FATAL,'GEN','PREP_IDEAL_CASE','for PV inversion, LGEOSBAL has to be true')
-ENDIF
-!
-IF(LPV_PERT .AND. NPROC>1) THEN
-  !callabortstop
-  CALL PRINT_MSG(NVERB_FATAL,'GEN','PREP_IDEAL_CASE','PV inversion has to be performed in monoprocess mode')
-ENDIF
 !
 !*       5.2.1  Use a Radiosounding : CIDEAL='RSOU''
 !
@@ -1482,15 +1463,13 @@ IF (CIDEAL == 'RSOU') THEN
   TDTEXP = TDTCUR
   TDTSEG = TDTCUR
   TDTMOD = TDTCUR
-  READ(NLUPRE,*) YKIND
-  BACKSPACE(NLUPRE)    ! because YKIND read again in set_rsou
   WRITE(NLUOUT,FMT=*) 'CIDEAL="RSOU", ATTEMPT TO PROCESS THE SOUNDING DATA'
   IF (LGEOSBAL) THEN
-    CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
-                  LRMV_BL,XJ,LSHIFT,XCORIOZ)
+    CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, &
+                  XJ,LSHIFT,XCORIOZ)
   ELSE
-    CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
-                  LRMV_BL,XJ,LSHIFT)
+    CALL SET_RSOU(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, &
+                  XJ,LSHIFT)
   END IF
 !
 !*       5.2.2  N=cste  and U(z) : CIDEAL='CSTN'
@@ -1505,11 +1484,11 @@ ELSE IF (CIDEAL == 'CSTN') THEN
   TDTMOD = TDTCUR
   WRITE(NLUOUT,FMT=*) 'CIDEAL="CSTN", ATTEMPT TO PROCESS THE SOUNDING DATA'
   IF (LGEOSBAL) THEN
-    CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
-                  LRMV_BL,XJ,LSHIFT,XCORIOZ)
+    CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, &
+                  XJ,LSHIFT,XCORIOZ)
   ELSE
-    CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,&
-                  LRMV_BL,XJ,LSHIFT)
+    CALL SET_CSTN(TFILE_DUMMY,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS, &
+                  XJ,LSHIFT)
   END IF
 !
 END IF 
diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 40ea2e911f569c2c532917b54c1e4d3c8cd2aee8..62b2f07253e5f89ddeaa83ef16cc59d5af9da4dd 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -43,8 +43,8 @@ INTEGER,                  INTENT(IN)   :: KMI      ! Model index
 INTEGER,                  INTENT(IN)   :: KTCOUNT  ! Temporal loop counter
 CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY   ! X and Y-direc. LBC type
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE   ! Output file
-CHARACTER*4,              INTENT(IN)   :: HRAD     ! Radiation scheme name
-CHARACTER*4,              INTENT(IN)   :: HTURBDIM ! Dimensionality of the
+CHARACTER(len=4),         INTENT(IN)   :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)   :: HTURBDIM ! Dimensionality of the
                                                    ! turbulence scheme
 LOGICAL,                  INTENT(IN)   :: OCLOSE_OUT ! Conditional closure of
                                                    ! the OUTPUT FM-file
@@ -341,8 +341,8 @@ INTEGER,                  INTENT(IN)   :: KMI      ! Model index
 INTEGER,                  INTENT(IN)   :: KTCOUNT  ! Temporal loop counter
 CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY   ! X and Y-direc. LBC type
 TYPE(TFILEDATA),          INTENT(IN)   :: TPFILE   ! Output file
-CHARACTER*4,              INTENT(IN)   :: HRAD     ! Radiation scheme name
-CHARACTER*4,              INTENT(IN)   :: HTURBDIM ! Dimensionality of the
+CHARACTER(len=4),         INTENT(IN)   :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)   :: HTURBDIM ! Dimensionality of the
                                                    ! turbulence scheme
 LOGICAL,                  INTENT(IN)   :: OCLOSE_OUT ! Conditional closure of
                                                    ! the OUTPUT FM-file
@@ -1315,7 +1315,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','ICE4 not yet implemented')
     ELSE
 !$acc update device(PCIT,PCLDFR)
 !$acc data copyin(PSEA,PTOWN)
-      CALL RAIN_ICE ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1,         &
+      CALL RAIN_ICE ( OSEDIC,CSEDIM, HSUBG_AUCV, OWARM,1,IKU,1,           &
                     KSPLITR, PTSTEP, KRR,                                 &
                     ZDZZ, PRHODJ, PRHODREF, PEXNREF, PPABST, PCIT, PCLDFR,&
                     PTHT, PRT(:,:,:,1), PRT(:,:,:,2),                     &
@@ -1323,7 +1323,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','ICE4 not yet implemented')
                     PRT(:,:,:,5), PRT(:,:,:,6),                           &
                     PTHS, PRS(:,:,:,1), PRS(:,:,:,2), PRS(:,:,:,3),       &
                     PRS(:,:,:,4), PRS(:,:,:,5), PRS(:,:,:,6),             &
-                    PINPRC, PINPRR, PINPRR3D, PEVAP3D,           &
+                    PINPRC, PINPRR, PINPRR3D, PEVAP3D,                    &
                     PINPRS, PINPRG, PSIGS,PINDEP, PRAINFR,                &
                     PSEA, PTOWN,                                          &
 !                     PRT(:,:,:,7),  PRS(:,:,:,7), PINPRH,PFPR=ZFPR )
@@ -1337,7 +1337,7 @@ CALL PRINT_MSG(NVERB_FATAL,'GEN','RESOLVED_CLOUD','ICE4 not yet implemented')
 !*       10.2   Perform the saturation adjustment over cloud ice and cloud water
 !
     IF (.NOT. LRED .OR. (LRED .AND. LADJ_AFTER) ) THEN
-     CALL ICE_ADJUST (1,IKU,1, KRR, CFRAC_ICE_ADJUST, 'DEPI',                 &
+     CALL ICE_ADJUST (1,IKU,1, KRR, CFRAC_ICE_ADJUST, 'DEPI',                &
                     OSUBG_COND, OSIGMAS, PTSTEP,PSIGQSAT,                    &
                     PRHODJ, PEXNREF, PSIGS, PMFCONV, PPABST, ZZZ,            &
                     ZEXN, PCF_MF,PRC_MF,PRI_MF,                              &                     
diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90
index 2f97d01ac175e333560a4f404e94fa2cfbfe27ee..534ba4b34400aa6318c9ea8a2481d2e0742b4689 100644
--- a/src/MNH/resolved_elecn.f90
+++ b/src/MNH/resolved_elecn.f90
@@ -31,8 +31,8 @@ INTEGER,                  INTENT(IN)   :: KMI      ! Model index
 INTEGER,                  INTENT(IN)   :: KTCOUNT  ! Temporal loop counter
 LOGICAL,                  INTENT(IN)   :: OEXIT    ! switch for the end of the temporal loop
 CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY   ! X and Y-direc. LBC type
-CHARACTER*4,              INTENT(IN)   :: HRAD     ! Radiation scheme name
-CHARACTER*4,              INTENT(IN)   :: HTURBDIM ! Dimensionality of the
+CHARACTER(len=4),         INTENT(IN)   :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)   :: HTURBDIM ! Dimensionality of the
                                                    ! turbulence scheme
 LOGICAL,                  INTENT(IN)   :: OSUBG_COND ! Switch for Subgrid Cond.
 LOGICAL,                  INTENT(IN)   :: OSIGMAS  ! Switch for Sigma_s:
@@ -227,8 +227,8 @@ INTEGER,                  INTENT(IN)   :: KMI      ! Model index
 INTEGER,                  INTENT(IN)   :: KTCOUNT  ! Temporal loop counter
 LOGICAL,                  INTENT(IN)   :: OEXIT    ! switch for the end of the temporal loop
 CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY   ! X and Y-direc. LBC type
-CHARACTER*4,              INTENT(IN)   :: HRAD     ! Radiation scheme name
-CHARACTER*4,              INTENT(IN)   :: HTURBDIM ! Dimensionality of the
+CHARACTER(len=4),         INTENT(IN)   :: HRAD     ! Radiation scheme name
+CHARACTER(len=4),         INTENT(IN)   :: HTURBDIM ! Dimensionality of the
                                                    ! turbulence scheme
 LOGICAL,                  INTENT(IN)   :: OSUBG_COND ! Switch for Subgrid Cond.
 LOGICAL,                  INTENT(IN)   :: OSIGMAS  ! Switch for Sigma_s:
diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90
index f51497f748ae1dc62f0503491c7926bfdb4699e1..3ec1a28b54b6a2220d145c4a2a10c67672baa5b1 100644
--- a/src/MNH/set_cstn.f90
+++ b/src/MNH/set_cstn.f90
@@ -9,7 +9,7 @@
 !
 INTERFACE
 !
-SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
+SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,PJ,OSHIFT,PCORIOZ)
 !
 USE MODD_IO, ONLY : TFILEDATA
 !
@@ -22,8 +22,6 @@ CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
 INTEGER,                INTENT(IN)  :: KILOC  ! I Localisation of vertical profile
 INTEGER,                INTENT(IN)  :: KJLOC  ! J Localisation of vertical profile
 LOGICAL,                INTENT(IN)  :: OBOUSS ! logical switch for Boussinesq version
-LOGICAL,                INTENT(IN)  :: OPV_PERT! logical switch for PV inversion
-LOGICAL,                INTENT(IN)  :: ORMV_BL! logical switch for remouve boundary layer
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien 
 LOGICAL,                INTENT(IN)  :: OSHIFT ! logical switch for vertical shift
 !
@@ -39,7 +37,7 @@ END MODULE MODI_SET_CSTN
 !
 !
 !     ##################################################################################
-      SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) 
+      SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,PJ,OSHIFT,PCORIOZ)
 !     ##################################################################################
 !
 !!****  *SET_CSTN * - routine to initialize mass and wind fields from a Nv=cste 
@@ -164,6 +162,7 @@ END MODULE MODI_SET_CSTN
 !!      V.Masson    12/08/13  Parallelization of the initilization profile
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -198,8 +197,6 @@ CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
 INTEGER,                INTENT(IN)  :: KILOC  ! I Localisation of vertical profile
 INTEGER,                INTENT(IN)  :: KJLOC  ! J Localisation of vertical profile
 LOGICAL,                INTENT(IN)  :: OBOUSS ! logical switch for Boussinesq version
-LOGICAL,                INTENT(IN)  :: OPV_PERT! logical switch for PV inversion
-LOGICAL,                INTENT(IN)  :: ORMV_BL! logical switch for remouve boundary layer
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien 
 LOGICAL,                INTENT(IN)  :: OSHIFT ! logical switch for vertical shift
 !
@@ -211,10 +208,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PCORIOZ ! Coriolis parameter
 !
 ! fields and data on the sounding levels
 !
-INTEGER                         :: ILUPRE,IRESP ! logical unit number of the 
-                                                ! EXPRE and FM return code
-INTEGER                         :: ILUOUT    ! Logical unit number for
-                                             ! output-listing   
+INTEGER                         :: ILUPRE   ! logical unit number
 INTEGER                         :: ILEVEL   ! number of levels 
 INTEGER                         :: ILAYER   ! number of layers
 REAL                            :: ZPGROUND ! pressure at the ground level
@@ -228,8 +222,6 @@ INTEGER                         :: JK,JKLEV ! Loop indexes
 !
 !  variables on the grid without orography
 !
-REAL, DIMENSION(SIZE(XZHAT))    :: ZZHATM  ! Height of mass model grid levels 
-                                           ! without orography 
 REAL, DIMENSION(SIZE(XZHAT))    :: ZTHVM   ! Virtual potential Temperature
                                            ! at mass model grid levels
 REAL, DIMENSION(SIZE(XZHAT))    :: ZTVM    ! Virtual Temperature at mass model
@@ -266,7 +258,6 @@ LOGICAL         :: GPROFILE_IN_PROC   ! T : initialization profile is in current
 !	        ------------------------------------------------------------
 !
 ILUPRE = TPEXPREFILE%NLU
-ILUOUT = TLUOUT%NLU
 !
 CALL GET_INDICE_ll(IIB,IJB,IIE,IJE)
 CALL GET_OR_ll('B',IXOR_ll,IYOR_ll)
diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90
index 6bd63a50719bd39eca5446d96ffe6f79ddbad481..9d8c9557115a4d595b5a787dd112f2d9292ec3c3 100644
--- a/src/MNH/set_grid.f90
+++ b/src/MNH/set_grid.f90
@@ -10,11 +10,7 @@
 INTERFACE
 !
       SUBROUTINE SET_GRID(KMI,TPINIFILE,                                      &
-                          KIU,KJU,KKU,KIMAX_ll,KJMAX_ll,                      &
-                          PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4,    &
-                          PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4,    &
-                          KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO,            &
-                          HLBCX,HLBCY,                                        &
+                          KKU,KIMAX_ll,KJMAX_ll,                              &
                           PTSTEP,PSEGLEN,                                     &
                           PLONORI,PLATORI,PLON,PLAT,                          &
                           PXHAT,PYHAT,PDXHAT,PDYHAT, PMAP,                    &
@@ -28,26 +24,12 @@ USE MODD_IO, ONLY: TFILEDATA,TOUTBAK
 !
 INTEGER,                INTENT(IN)  :: KMI       ! Model index
 TYPE(TFILEDATA),        INTENT(IN)  :: TPINIFILE !Initial file
-INTEGER,                INTENT(IN)  :: KIU       ! Upper dimension in x direction
-                                                 ! for sub-domain arrays
-INTEGER,                INTENT(IN)  :: KJU       ! Upper dimension in y direction
-                                                 ! for sub-domain arrays
 INTEGER,                INTENT(IN)  :: KKU       ! Upper dimension in z direction
                                                  ! for domain arrays
 INTEGER,                INTENT(IN)  :: KIMAX_ll  !  Dimensions  in x direction
                                                  ! of the physical domain,
 INTEGER,                INTENT(IN)  :: KJMAX_ll  !  Dimensions  in y direction
                                                  ! of the physical domain,
-REAL, DIMENSION(:), INTENT(IN) :: PBMX1,PBMX2,PBMX3,PBMX4 ! Mass points in X-direc.
-REAL, DIMENSION(:), INTENT(IN) :: PBMY1,PBMY2,PBMY3,PBMY4 ! Mass points in Y-direc.
-REAL, DIMENSION(:), INTENT(IN) :: PBFX1,PBFX2,PBFX3,PBFX4 ! Flux points in X-direc.
-REAL, DIMENSION(:), INTENT(IN) :: PBFY1,PBFY2,PBFY3,PBFY4 ! Flux points in Y-direc.
-INTEGER,   INTENT(IN)  :: KXOR,KXEND !  horizontal position (i,j) of the ORigin and END
-INTEGER,   INTENT(IN)  :: KYOR,KYEND ! of the inner model domain, relative to outer model
-INTEGER,   INTENT(IN)  :: KDXRATIO   !  x and y-direction resolution RATIO
-INTEGER,   INTENT(IN)  :: KDYRATIO   ! between inner model and outer model
-CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCX   ! type of lateral
-CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCY   ! boundary conditions
 !
 REAL,                   INTENT(IN)  :: PTSTEP    ! time step of model KMI
 REAL,                   INTENT(INOUT) :: PSEGLEN ! segment duration (in seconds)
@@ -100,11 +82,7 @@ END MODULE MODI_SET_GRID
 !
 !     #########################################################################
       SUBROUTINE SET_GRID(KMI,TPINIFILE,                                      &
-                          KIU,KJU,KKU,KIMAX_ll,KJMAX_ll,                      &
-                          PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4,    &
-                          PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4,    &
-                          KXOR,KYOR,KXEND,KYEND,KDXRATIO,KDYRATIO,            &
-                          HLBCX,HLBCY,                                        &
+                          KKU,KIMAX_ll,KJMAX_ll,                              &
                           PTSTEP,PSEGLEN,                                     &
                           PLONORI,PLATORI,PLON,PLAT,                          &
                           PXHAT,PYHAT,PDXHAT,PDYHAT, PMAP,                    &
@@ -228,6 +206,7 @@ END MODULE MODI_SET_GRID
 !!                            grid-nesting lbc
 !!     V.MASSON 12/10/00 read of the orography in all cases, even if LFLAT=T
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -258,26 +237,12 @@ IMPLICIT NONE
 !
 INTEGER,                INTENT(IN)  :: KMI       ! Model index
 TYPE(TFILEDATA),        INTENT(IN)  :: TPINIFILE !Initial file
-INTEGER,                INTENT(IN)  :: KIU       ! Upper dimension in x direction
-                                                 ! for sub-domain arrays
-INTEGER,                INTENT(IN)  :: KJU       ! Upper dimension in y direction
-                                                 ! for sub-domain arrays
 INTEGER,                INTENT(IN)  :: KKU       ! Upper dimension in z direction
                                                  ! for domain arrays
 INTEGER,               INTENT(IN)   :: KIMAX_ll  !  Dimensions  in x direction
                                                  ! of the physical domain,
 INTEGER,               INTENT(IN)   :: KJMAX_ll  !  Dimensions  in y direction
                                                  ! of the physical domain,
-REAL, DIMENSION(:), INTENT(IN) :: PBMX1,PBMX2,PBMX3,PBMX4 ! Mass points in X-direc.
-REAL, DIMENSION(:), INTENT(IN) :: PBMY1,PBMY2,PBMY3,PBMY4 ! Mass points in Y-direc.
-REAL, DIMENSION(:), INTENT(IN) :: PBFX1,PBFX2,PBFX3,PBFX4 ! Flux points in X-direc.
-REAL, DIMENSION(:), INTENT(IN) :: PBFY1,PBFY2,PBFY3,PBFY4 ! Flux points in Y-direc.
-INTEGER,   INTENT(IN)  :: KXOR,KXEND !  horizontal position (i,j) of the ORigin and END
-INTEGER,   INTENT(IN)  :: KYOR,KYEND ! of the inner model domain, relative to outer model
-INTEGER,   INTENT(IN)  :: KDXRATIO   !  x and y-direction resolution RATIO
-INTEGER,   INTENT(IN)  :: KDYRATIO   ! between inner model and outer model
-CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCX   ! type of lateral
-CHARACTER (LEN=4), DIMENSION (2), INTENT(IN) :: HLBCY   ! boundary conditions
 !
 REAL,                   INTENT(IN)  :: PTSTEP    ! time step of model KMI
 REAL,                   INTENT(INOUT) :: PSEGLEN ! segment duration (in seconds)
diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90
index 6c38994c69acbdb6fa7395694f04c42626af5acf..5a787a31bd6be1946fb9b1c7bdf5770622c16812 100644
--- a/src/MNH/set_rsou.f90
+++ b/src/MNH/set_rsou.f90
@@ -9,8 +9,8 @@
 !
 INTERFACE
 !
-      SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
-                          ORMV_BL,PJ,OSHIFT,PCORIOZ) 
+      SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,&
+                          PJ,OSHIFT,PCORIOZ)
 !
 USE MODD_IO, ONLY : TFILEDATA
 !
@@ -23,8 +23,6 @@ CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
 INTEGER,                INTENT(IN)  :: KILOC  ! I Localisation of vertical profile
 INTEGER,                INTENT(IN)  :: KJLOC  ! J Localisation of vertical profile
 LOGICAL,                INTENT(IN)  :: OBOUSS ! logical switch for Boussinesq version
-LOGICAL,                INTENT(IN)  :: OPV_PERT! logical switch for PV inversion
-LOGICAL,                INTENT(IN)  :: ORMV_BL! logical switch for remouve boundary layer
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien 
 LOGICAL,                INTENT(IN)  :: OSHIFT ! logical switch for vertical shift
 !
@@ -37,10 +35,10 @@ END INTERFACE
 !
 END MODULE MODI_SET_RSOU
 !
-!     ###########################################################################
-      SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,&
-                          ORMV_BL,PJ,OSHIFT,PCORIOZ) 
-!     ###########################################################################
+!     ########################################################################
+      SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS, &
+                          PJ,OSHIFT,PCORIOZ)
+!     ########################################################################
 !
 !!****  *SET_RSOU * -  to initialize mass fiels from a radiosounding 
 !!
@@ -243,6 +241,7 @@ END MODULE MODI_SET_RSOU
 !!      V.Masson    12/08/13  Parallelization of the initilization profile
 !!      J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 
 !!  Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
+!  P. Wautelet 19/04/2019: removed unused dummy arguments and variables
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -255,9 +254,7 @@ USE MODD_FIELD_n
 USE MODD_GRID
 USE MODD_GRID_n
 USE MODD_IO,         ONLY: TFILEDATA
-USE MODD_LUNIT_n
 USE MODD_PARAMETERS, ONLY: JPHEXT
-USE MODD_PARAM_n,    ONLY: CCLOUD
 !
 USE MODE_ll
 USE MODE_MSG
@@ -286,8 +283,6 @@ CHARACTER(LEN=*),       INTENT(IN)  :: HFUNV  ! type of variation of V
 INTEGER,                INTENT(IN)  :: KILOC  ! I Localisation of vertical profile
 INTEGER,                INTENT(IN)  :: KJLOC  ! J Localisation of vertical profile
 LOGICAL,                INTENT(IN)  :: OBOUSS ! logical switch for Boussinesq version
-LOGICAL,                INTENT(IN)  :: OPV_PERT! logical switch for PV inversion
-LOGICAL,                INTENT(IN)  :: ORMV_BL! logical switch for remouve boundary layer
 LOGICAL,                INTENT(IN)  :: OSHIFT ! logical switch for vertical shift
 REAL, DIMENSION(:,:,:), INTENT(OUT), OPTIONAL :: PCORIOZ ! Coriolis parameter
                                                ! (exceptionnaly 3D array)
@@ -296,10 +291,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobien
 !
 !*       0.2   Declarations of local variables :
 !
-INTEGER                         :: ILUPRE,IRESP ! logical unit number of the 
-                                                ! EXPRE and FM return code
-INTEGER                         :: ILUOUT    ! Logical unit number for
-                                             ! output-listing   
+INTEGER                         :: ILUPRE ! logical unit number
 !
 !  variables read in EXPRE file at the RS levels
 !
@@ -310,14 +302,13 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZHEIGHTU  ! Height at wind levels
 REAL, DIMENSION(:), ALLOCATABLE :: ZPRESSU   ! Pressure at wind levels
 REAL, DIMENSION(:), ALLOCATABLE :: ZTHVU     ! Thetav at wind levels
 REAL, DIMENSION(:), ALLOCATABLE :: ZU,ZV     ! wind components
-REAL, DIMENSION(:), ALLOCATABLE :: ZU_TURN,ZV_TURN     ! wind components on MESONH grid 
 REAL, DIMENSION(:), ALLOCATABLE :: ZDD,ZFF   ! dd (direction) and ff(force)
                                              !     for wind
 REAL                            :: ZZGROUND,ZPGROUND ! height and Pressure at ground  
 REAL                            :: ZTGROUND,ZTHVGROUND,ZTHDGROUND,ZTHLGROUND,    & 
                                    ZTDGROUND,ZMRGROUND,ZHUGROUND        
                                                   ! temperature and moisture
-                                                  ! variables at ground                                                                
+                                                  ! variables at ground
 INTEGER                         :: ILEVELM   ! number of mass levels
 REAL, DIMENSION(:), ALLOCATABLE :: ZHEIGHTM  ! Height at mass levels
 REAL, DIMENSION(:), ALLOCATABLE :: ZPRESSM   ! Pressure at mass levels
@@ -371,9 +362,7 @@ LOGICAL         :: GPROFILE_IN_PROC   ! T : initialization profile is in current
 !
 REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT))   ::ZZS_LS
 REAL,DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT)) ::ZZFLUX_MX,ZZMASS_MX ! mixed grid
-INTEGER :: JJ,JI
 INTEGER :: JLOOP
-CHARACTER(LEN=100) :: YMSG
 !-------------------------------------------------------------------------------
 !
 !*	 1.     PROLOGUE : INITIALIZE SOME CONSTANTS, RETRIEVE LOGICAL
@@ -394,7 +383,6 @@ ZRDSRV = XRD/XRV
 !
 !                           
 ILUPRE = TPEXPREFILE%NLU
-ILUOUT = TLUOUT%NLU
 !
 !*       1.3  Read data kind in EXPRE file 
 !
@@ -402,9 +390,7 @@ READ(ILUPRE,*) YKIND
 !
 !
 IF(LUSERC .AND. YKIND/='PUVTHDMR' .AND. YKIND/='ZUVTHDMR' .AND.  YKIND/='ZUVTHLMR') THEN 
-  WRITE(YMSG,*) 'hydrometeors are not allowed for YKIND = ', YKIND
- !callabortstop
-  CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU',YMSG)
+  CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU','hydrometeors are not allowed for YKIND = '//trim(YKIND))
 ENDIF
 ! Demande Thierry Bergot Sept 2012 
 !IF(LUSERC .AND.(YKIND == 'PUVTHDMR' .OR. YKIND == 'ZUVTHDMR').AND. .NOT. L1D) THEN
@@ -1106,9 +1092,7 @@ SELECT CASE(YKIND)
      ZRT(:)=ZMR(:)
      ZTHL(:)=ZTHV(:)*(1+ZRT(:))/(1+ZRVSRD*ZRT(:))
   CASE DEFAULT
- !callabortstop
-    WRITE(YMSG,*) 'data type YKIND=',TRIM(YKIND),' in PREFILE unknown'
-    CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU',YMSG)
+    CALL PRINT_MSG(NVERB_FATAL,'GEN','SET_RSOU','data type YKIND='//TRIM(YKIND)//' in PREFILE unknown')
 END SELECT
 !
 !-------------------------------------------------------------------------------
@@ -1243,19 +1227,12 @@ DEALLOCATE(ZMRT)
 
 !-------------------------------------------------------------------------------
 !
-!*	 4.     COMPUTE FIELDS ON THE MODEL GRID (WITH OROGRAPHY)
-!	        -------------------------------------------------
-IF (PRESENT(PCORIOZ)) THEN
-  CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE,                      &
-                KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
-                ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,              &
-                PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ)
-ELSE  
-  CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE,                      &
-                KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
-                ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,              &
-                PMRCM=ZMRCM,PMRIM=ZMRIM)
-ENDIF
+!* 4.     COMPUTE FIELDS ON THE MODEL GRID (WITH OROGRAPHY)
+!         -------------------------------------------------
+CALL SET_MASS(TPFILE,GPROFILE_IN_PROC, ZZFLUX_PROFILE,                      &
+              KILOC+JPHEXT,KJLOC+JPHEXT,ZZS_LS,ZZMASS_MX,ZZFLUX_MX,ZPGROUND,&
+              ZTHVM,ZMRM,ZUW,ZVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,              &
+              PMRCM=ZMRCM,PMRIM=ZMRIM,PCORIOZ=PCORIOZ)
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/shallow_mf.f90 b/src/MNH/shallow_mf.f90
index 52a1a7aef3d49a52fcbe9659a4f596cf52f6b822..4017b49d7540651b21d3d4040afd68f57418de68 100644
--- a/src/MNH/shallow_mf.f90
+++ b/src/MNH/shallow_mf.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2018 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 for details. version 1.
@@ -43,13 +43,13 @@ CHARACTER (LEN=4),      INTENT(IN)   :: HMF_UPDRAFT  ! Type of Mass Flux Scheme
                                      ! 'NONE' if no parameterization 
 CHARACTER (LEN=4),      INTENT(IN)   :: HMF_CLOUD    ! Type of statistical cloud
                                                      ! scheme
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN)   :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
 INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
 INTEGER,                INTENT(IN)   :: KSV_LGEND ! last  index of lag. tracer
 REAL,                   INTENT(IN)   :: PIMPL_MF     ! degre of implicitness
-REAL,              INTENT(IN)     ::  PTSTEP   ! Dynamical timestep 
+REAL,                   INTENT(IN)     ::  PTSTEP   ! Dynamical timestep
 
 REAL, DIMENSION(:,:),   INTENT(IN) ::  PZZ         ! Height of flux point
 REAL, DIMENSION(:,:),   INTENT(IN) ::  PDZZ        ! Metric coefficients
@@ -212,7 +212,7 @@ CHARACTER (LEN=4),      INTENT(IN)   :: HMF_UPDRAFT  ! Type of Mass Flux Scheme
                                      ! 'NONE' if no parameterization 
 CHARACTER (LEN=4),      INTENT(IN)   :: HMF_CLOUD    ! Type of statistical cloud
                                                      ! scheme
-CHARACTER*1,            INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
+CHARACTER(len=1),       INTENT(IN)   :: HFRAC_ICE    ! partition liquid/ice scheme
 LOGICAL,                INTENT(IN)   :: OMIXUV    ! True if mixing of momentum
 LOGICAL,                INTENT(IN)   :: ONOMIXLG  ! False if mixing of lagrangian tracer
 INTEGER,                INTENT(IN)   :: KSV_LGBEG ! first index of lag. tracer
diff --git a/src/MNH/th_r_from_thl_rt_1d.f90 b/src/MNH/th_r_from_thl_rt_1d.f90
index 8c9081427e1af18fb11f1807b1ed75a16e8ee217..fcec2372fd5ff3a140c04b04df94a31073645167 100644
--- a/src/MNH/th_r_from_thl_rt_1d.f90
+++ b/src/MNH/th_r_from_thl_rt_1d.f90
@@ -6,7 +6,7 @@
       SUBROUTINE TH_R_FROM_THL_RT_1D(HFRAC_ICE,PFRAC_ICE,PP,             &
                                   PTHL, PRT, PTH, PRV, PRL, PRI,         &
                                   PRSATW, PRSATI, PRR, PRS, PRG, PRH     )
-CHARACTER*1       , INTENT(IN)    :: HFRAC_ICE
+CHARACTER(len=1),   INTENT(IN)    :: HFRAC_ICE
 REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:), INTENT(IN) :: PP     ! Pressure
 REAL, DIMENSION(:), INTENT(IN) :: PTHL   ! Liquid pot. temp.
@@ -75,7 +75,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),   INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:), INTENT(IN) :: PTHL    ! thetal to transform into th
diff --git a/src/MNH/th_r_from_thl_rt_2d.f90 b/src/MNH/th_r_from_thl_rt_2d.f90
index 928ff58c6cf5a0862ebae7a7adeb7d94779b41fc..356c9c1910c17a2126f7f4212b94045ad46a268d 100644
--- a/src/MNH/th_r_from_thl_rt_2d.f90
+++ b/src/MNH/th_r_from_thl_rt_2d.f90
@@ -1,14 +1,15 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2006-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.
+!-----------------------------------------------------------------
 !     ######spl
       MODULE MODI_TH_R_FROM_THL_RT_2D
       INTERFACE
       SUBROUTINE TH_R_FROM_THL_RT_2D(HFRAC_ICE,PFRAC_ICE,PP,             &
                                   PTHL, PRT, PTH, PRV, PRL, PRI,         &
                                   PRSATW, PRSATI, PRR, PRS, PRG, PRH     )
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),     INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:,:), INTENT(IN) :: PTHL    ! thetal to transform into th
@@ -76,7 +77,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1           , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),     INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:), INTENT(IN) :: PP     ! Pressure
 REAL, DIMENSION(:,:), INTENT(IN) :: PTHL   ! Liquid pot. temp.
diff --git a/src/MNH/th_r_from_thl_rt_3d.f90 b/src/MNH/th_r_from_thl_rt_3d.f90
index 1f70220ec3a57ab282edb53414781bef03907bf4..d58d98f4df68925f2f4085e3038c98b1800d2c81 100644
--- a/src/MNH/th_r_from_thl_rt_3d.f90
+++ b/src/MNH/th_r_from_thl_rt_3d.f90
@@ -1,7 +1,8 @@
-!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2011-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.
+!-----------------------------------------------------------------
 !     ######spl
       MODULE MODI_TH_R_FROM_THL_RT_3D
 !     ###############################
@@ -11,7 +12,7 @@ INTERFACE
                                   PTHL, PRT, PTH, PRV, PRL, PRI, &
                                   PRSATW, PRSATI, PRR, PRS, PRG, PRH       )
 
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),       INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL    ! thetal to transform into th
@@ -77,7 +78,7 @@ IMPLICIT NONE
 !
 !*      0.1  declarations of arguments
 !
-CHARACTER*1         , INTENT(IN) :: HFRAC_ICE
+CHARACTER(len=1),       INTENT(IN) :: HFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PP          ! Pressure
 REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHL    ! thetal to transform into th
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index 25beedd59180b2e26b9d044e521a7db47207ac63..25f1eb52b6455c72321e16188016ac1e07f89e83 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -30,9 +30,9 @@ REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PDXX,PDYY,PDZZ,PDZX,PDZY
 REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PZZ          ! physical height w-pt
 REAL,                    INTENT(IN)   ::  PTSTEP       ! Time step 
 REAL,                    INTENT(IN)   ::  PEXPL, PIMPL ! Coef. temporal. disc.
-CHARACTER*4,             INTENT(IN)   ::  HTURBDIM     ! dimensionality of the 
+CHARACTER(len=4),        INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                        ! turbulence scheme
-CHARACTER*4,             INTENT(IN)   ::  HTURBLEN     ! kind of mixing length 
+CHARACTER(len=4),        INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
 TYPE(TFILEDATA),         INTENT(IN)   ::  TPFILE       ! Output file
 LOGICAL,                 INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                        ! file opening
@@ -230,9 +230,9 @@ REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PDXX,PDYY,PDZZ,PDZX,PDZY
 REAL, DIMENSION(:,:,:),  INTENT(IN)   ::  PZZ          ! physical height w-pt
 REAL,                    INTENT(IN)   ::  PTSTEP       ! Time step 
 REAL,                    INTENT(IN)   ::  PEXPL, PIMPL ! Coef. temporal. disc.
-CHARACTER*4,             INTENT(IN)   ::  HTURBDIM     ! dimensionality of the 
+CHARACTER(len=4),        INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                        ! turbulence scheme
-CHARACTER*4,             INTENT(IN)   ::  HTURBLEN     ! kind of mixing length 
+CHARACTER(len=4),        INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
 TYPE(TFILEDATA),         INTENT(IN)   ::  TPFILE       ! Output file
 LOGICAL,                 INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                        ! file opening
diff --git a/src/MNH/tridiag_thermo.f90 b/src/MNH/tridiag_thermo.f90
index a92e811388c133262dae56adec5501ca3d80d983..11888cfd758ed969208d6337e7e03cc834ea2d59 100644
--- a/src/MNH/tridiag_thermo.f90
+++ b/src/MNH/tridiag_thermo.f90
@@ -295,7 +295,6 @@ IF ( PIMPL > 1.E-10 ) THEN
 !$acc end kernels
 !
 !$acc kernels async
-
   ZA(:,:,IKE) =   ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE  ) * PIMPL
   ZB(:,:,IKE) =   PRHODJ(:,:,IKE)/PTSTEP                   &
                 - ZRHODJ_DFDDTDZ_O_DZ2(:,:,IKE  ) * PIMPL
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index 6f599fade16126e0a60b6ac8225aad05037bb095..02b24d631243821ad07b1c8c6af50d4f2e39c918 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2019 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 for details. version 1.
@@ -46,11 +46,11 @@ LOGICAL,                INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
 LOGICAL,                INTENT(IN)   ::  OSUBG_COND   ! switch for SUBGrid 
                                  ! CONDensation
 LOGICAL,                INTENT(IN)   ::  ORMC01       ! switch for RMC01 lengths in SBL
-CHARACTER*4           , INTENT(IN)      ::  HTURBDIM  ! dimensionality of the 
-                                 ! turbulence scheme
-CHARACTER*4           , INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
-CHARACTER*4           , INTENT(IN)   ::  HTOM         ! kind of Third Order Moment
-CHARACTER*4           , INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+                                                      ! turbulence scheme
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! kind of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
                                                       ! surface friction flux
 REAL,                   INTENT(IN)   ::  PIMPL        ! degree of implicitness
 CHARACTER (LEN=4),      INTENT(IN)   ::  HCLOUD       ! Kind of microphysical scheme
@@ -420,11 +420,11 @@ LOGICAL,                INTENT(IN)   ::  OTURB_DIAG   ! switch to write some
 LOGICAL,                INTENT(IN)   ::  OSUBG_COND   ! switch for SUBGrid 
                                  ! CONDensation
 LOGICAL,                INTENT(IN)   ::  ORMC01       ! switch for RMC01 lengths in SBL
-CHARACTER*4           , INTENT(IN)      ::  HTURBDIM  ! dimensionality of the 
-                                 ! turbulence scheme
-CHARACTER*4           , INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
-CHARACTER*4           , INTENT(IN)   ::  HTOM         ! kind of Third Order Moment
-CHARACTER*4           , INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+                                                      ! turbulence scheme
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBLEN     ! kind of mixing length
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! kind of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBLEN_CL  ! kind of cloud mixing length
 REAL,                   INTENT(IN)   ::  PIMPL        ! degree of implicitness
 CHARACTER (LEN=4),      INTENT(IN)   ::  HCLOUD       ! Kind of microphysical scheme
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90
index 2867e1195a9cc3ddcd3aabf7f92ad9a86a3a9eb9..d73fae8188bd3c17ffcc7264a0b5a9a6597823db 100644
--- a/src/MNH/turb_ver.f90
+++ b/src/MNH/turb_ver.f90
@@ -36,9 +36,9 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the 
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
-CHARACTER*4,            INTENT(IN)   ::  HTOM         ! type of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
@@ -378,9 +378,9 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the 
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
-CHARACTER*4,            INTENT(IN)   ::  HTOM         ! type of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! timestep 
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90
index e85ea649b6431a247a718cc39c6b35700ec12d1b..abbc04e77a6f17561965a2375e9426ab0131beb9 100644
--- a/src/MNH/turb_ver_dyn_flux.f90
+++ b/src/MNH/turb_ver_dyn_flux.f90
@@ -33,7 +33,7 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
 INTEGER,                INTENT(IN)   ::  KRR          ! number of moist var.
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the 
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
@@ -337,7 +337,7 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
 INTEGER,                INTENT(IN)   ::  KRR          ! number of moist var.
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the 
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90
index 841371a5460d0be73f463e6876a64828a54b8126..bbf10274785e51588f0da32db7c40faa38b1b46b 100644
--- a/src/MNH/turb_ver_sv_flux.f90
+++ b/src/MNH/turb_ver_sv_flux.f90
@@ -30,7 +30,7 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
@@ -303,7 +303,7 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90
index b1059b576354e547326aec8a6cfcce5e2cce41e9..5732723a1b61641d8e2f8b9c6adf1eebaf4521a4 100644
--- a/src/MNH/turb_ver_thermo_corr.f90
+++ b/src/MNH/turb_ver_thermo_corr.f90
@@ -37,9 +37,9 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
-CHARACTER*4,            INTENT(IN)   ::  HTOM         ! type of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
@@ -367,9 +367,9 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
-CHARACTER*4,            INTENT(IN)   ::  HTOM         ! type of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
 !
diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90
index f910e5cdf6d824fa466bd1c92e04c0178cabe8de..78e1f44fb06cc27a79bcf13c988b159b6e444638 100644
--- a/src/MNH/turb_ver_thermo_flux.f90
+++ b/src/MNH/turb_ver_thermo_flux.f90
@@ -38,9 +38,9 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
-CHARACTER*4,            INTENT(IN)   ::  HTOM         ! type of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
@@ -387,9 +387,9 @@ LOGICAL,                INTENT(IN)   ::  OCLOSE_OUT   ! switch for syncronous
                                                       ! file opening       
 LOGICAL,                INTENT(IN)   ::  OTURB_FLX    ! switch to write the
                                  ! turbulent fluxes in the syncronous FM-file
-CHARACTER*4,            INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
+CHARACTER(len=4),       INTENT(IN)   ::  HTURBDIM     ! dimensionality of the
                                                       ! turbulence scheme
-CHARACTER*4,            INTENT(IN)   ::  HTOM         ! type of Third Order Moment
+CHARACTER(len=4),       INTENT(IN)   ::  HTOM         ! type of Third Order Moment
 REAL,                   INTENT(IN)   ::  PIMPL, PEXPL ! Coef. for temporal disc.
 REAL,                   INTENT(IN)   ::  PTSTEP       ! Double Time Step
 TYPE(TFILEDATA),        INTENT(IN)   ::  TPFILE       ! Output file
diff --git a/src/MNH/two_way.f90 b/src/MNH/two_way.f90
index 7f47e24072eedbdd4771c12615bd8b96da7d55d2..64f72579c3d267f8fee4317d90886a6a21d8b22d 100644
--- a/src/MNH/two_way.f90
+++ b/src/MNH/two_way.f90
@@ -1,6 +1,6 @@
-!MNH_LIC Copyright 1999-2018 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1999-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.
 !-----------------------------------------------------------------
 !     ###################
@@ -10,8 +10,8 @@
 INTERFACE 
 !
       SUBROUTINE TWO_WAY   (     KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                &
-                            PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
-                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
+                            PUM ,PVM, PWM, PTHM, PRM, PSVM,                        &
+                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS,                       &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
                             PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids             )
 ! 
@@ -26,11 +26,11 @@ REAL,                     INTENT(IN)  :: PTSTEP  ! Timestep duration
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PRHODJ         ! (Rho) dry * Jacobian
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PUM, PVM, PWM  ! Variables at t-dt 
-REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM, PTKEM
+REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM
 REAL, DIMENSION(:,:,:,:), INTENT(IN)  :: PRM, PSVM
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRUS, PRVS, PRWS         ! Source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS, PRTKES
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS              !  terms
 !
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH &
@@ -48,8 +48,8 @@ END MODULE MODI_TWO_WAY
 !
 !     ########################################################################
       SUBROUTINE TWO_WAY   (     KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                &
-                            PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
-                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
+                            PUM ,PVM, PWM, PTHM, PRM, PSVM,                        &
+                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS,                       &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
                             PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids             )
 !     ########################################################################
@@ -126,11 +126,11 @@ REAL,                     INTENT(IN)  :: PTSTEP  ! Timestep duration
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PRHODJ         ! (Rho) dry * Jacobian
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PUM, PVM, PWM  ! Variables at t-dt 
-REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM, PTKEM
+REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM
 REAL, DIMENSION(:,:,:,:), INTENT(IN)  :: PRM, PSVM
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRUS, PRVS, PRWS         ! Source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS, PRTKES
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS              !  terms
 !
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH &
@@ -153,9 +153,9 @@ DO JKID = KMI+1,NMODEL  ! min value of the possible kids
   IF (KMI == NDAD(JKID) .AND. (XWAY(JKID) == 2. ) &
    .AND. (CCONF == 'RESTA' .OR. (CCONF == 'START' .AND. KTCOUNT /= 1))) THEN
     CALL GOTO_MODEL(JKID)
-    CALL TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                     &
-                    PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
-                    PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
+    CALL TWO_WAY_n (KRR,KSV,PRHODJ,KMI,PTSTEP,                             &
+                    PUM ,PVM, PWM, PTHM, PRM, PSVM,                        &
+                    PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS,                       &
                     PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
                     PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids             )
   END IF
diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90
index 62f7596c7c77eb388a070c87d364bbc5e63a1331..52a22f8d530b86603579bc88ea8c555f242ced5c 100644
--- a/src/MNH/two_wayn.f90
+++ b/src/MNH/two_wayn.f90
@@ -9,16 +9,14 @@
 !
 INTERFACE 
 !
-      SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                     &
-                            PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
-                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
+      SUBROUTINE TWO_WAY_n (KRR,KSV,PRHODJ,KMI,PTSTEP,                             &
+                            PUM ,PVM, PWM, PTHM, PRM, PSVM,                        &
+                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS,                       &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
                             PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids             )
 ! 
 INTEGER,                  INTENT(IN)  :: KRR     ! Number of moist variables
 INTEGER,                  INTENT(IN)  :: KSV     ! Number of Scalar Variables
-INTEGER,                  INTENT(IN)  :: KTCOUNT ! Temporal loop COUNTer
-                                                 ! (=1 at the segment beginning)
 INTEGER,                  INTENT(IN)  :: KMI     ! Model index     
 !
 REAL,                     INTENT(IN)  :: PTSTEP  ! Timestep duration
@@ -26,11 +24,11 @@ REAL,                     INTENT(IN)  :: PTSTEP  ! Timestep duration
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PRHODJ         ! (Rho) dry * Jacobian
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PUM, PVM, PWM  ! Variables at t-dt 
-REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM, PTKEM
+REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM
 REAL, DIMENSION(:,:,:,:), INTENT(IN)  :: PRM, PSVM
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRUS, PRVS, PRWS         ! Source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS, PRTKES
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS              !  terms
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH, &
                                            PPRCONV,PPRSCONV     !  precipitating variables
@@ -44,9 +42,9 @@ END INTERFACE
 !
 END MODULE MODI_TWO_WAY_n
 !     #######################################################################
-      SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP,                     &
-                            PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM,                 &
-                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS,                &
+      SUBROUTINE TWO_WAY_n (KRR,KSV,PRHODJ,KMI,PTSTEP,                             &
+                            PUM ,PVM, PWM, PTHM, PRM, PSVM,                        &
+                            PRUS,PRVS,PRWS,PRTHS,PRRS,PRSVS,                       &
                             PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV,   &
                             PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids             )
 !     #######################################################################
@@ -145,8 +143,6 @@ IMPLICIT NONE
 ! 
 INTEGER,                  INTENT(IN)  :: KRR     ! Number of moist variables
 INTEGER,                  INTENT(IN)  :: KSV     ! Number of SV (father model)
-INTEGER,                  INTENT(IN)  :: KTCOUNT ! Temporal loop COUNTer
-                                                 ! (=1 at the segment beginning)
 INTEGER,                  INTENT(IN)  :: KMI     ! Model index     
 !
 REAL,                     INTENT(IN)  :: PTSTEP  ! Timestep duration
@@ -154,11 +150,11 @@ REAL,                     INTENT(IN)  :: PTSTEP  ! Timestep duration
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PRHODJ         ! (Rho) dry * Jacobian
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PUM, PVM, PWM  ! Variables at t-dt 
-REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM, PTKEM
+REAL, DIMENSION(:,:,:),   INTENT(IN)  :: PTHM
 REAL, DIMENSION(:,:,:,:), INTENT(IN)  :: PRM, PSVM
 !
 REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRUS, PRVS, PRWS         ! Source
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS, PRTKES
+REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PRTHS
 REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRRS, PRSVS              !  terms
 REAL, DIMENSION(:,:), INTENT(INOUT)     :: PINPRC,PINPRR,PINPRS,PINPRG,PINPRH &
                                           ,PPRCONV,PPRSCONV     !  precipitating variables
diff --git a/src/MNH/write_ts1d.f90 b/src/MNH/write_ts1d.f90
index f57d26eef48fbf62659b9a077cc6eeafe7d1ade2..ab625577a45976fbea4f7be04915cdc4b4fc05e4 100644
--- a/src/MNH/write_ts1d.f90
+++ b/src/MNH/write_ts1d.f90
@@ -145,14 +145,14 @@ REAL              :: ZX, ZY                 ! poisition of each profile
 REAL, DIMENSION(SIZE(XCHEMLAT)) ::  ZLAT, ZLON
 TYPE(TFILEDATA),POINTER,SAVE :: TZFILE
 !
-CHARACTER*8  :: YDATE  ! for retrieval of date and time
-CHARACTER*10 :: YTIME  ! dito
-CHARACTER*13 :: YLATLON  ! dito
-CHARACTER*13 :: YCLATLON  ! dito
-CHARACTER*4  :: YCYEAR  ! current year
-CHARACTER*2  :: YCMONTH ! current month
-CHARACTER*2  :: YCDAY   ! current day
-CHARACTER*5  :: YCTIME  ! current time
+CHARACTER(len=8)  :: YDATE  ! for retrieval of date and time
+CHARACTER(len=10) :: YTIME  ! dito
+CHARACTER(len=13) :: YLATLON  ! dito
+CHARACTER(len=13) :: YCLATLON  ! dito
+CHARACTER(len=4)  :: YCYEAR  ! current year
+CHARACTER(len=2)  :: YCMONTH ! current month
+CHARACTER(len=2)  :: YCDAY   ! current day
+CHARACTER(len=5)  :: YCTIME  ! current time
 !!
 !!    EXECUTABLE STATEMENTS
 !!    ---------------------
diff --git a/src/SURFEX/goto_model_mnh.F90 b/src/SURFEX/goto_model_mnh.F90
index 2e20c9bc6b39752cf631af7c3e74982c59038788..557160ab4ad260d0c24fa3fb7c90873857f6ad90 100644
--- a/src/SURFEX/goto_model_mnh.F90
+++ b/src/SURFEX/goto_model_mnh.F90
@@ -1,6 +1,6 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!SFX_LIC Copyright 2015-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !SFX_LIC for details. version 1.
 !#######################
 MODULE MODI_GOTO_MODEL_MNH
@@ -124,7 +124,7 @@ INTEGER,                         INTENT(OUT)    :: KINFO_ll
 !            ------------------------------
 !
 INTEGER :: IMI ! return code of // routines
-CHARACTER*1 :: HSPLIT
+CHARACTER(len=1) :: HSPLIT
 !
 !------------------------------------------------------------------------------
 !
diff --git a/src/SURFEX/modd_chs_aerosol.F90 b/src/SURFEX/modd_chs_aerosol.F90
index 610b3cee04d849cb3a302d870a67a62ceb91903b..c86aa1b464e3bb8206902068411cd8fabca9b7f3 100644
--- a/src/SURFEX/modd_chs_aerosol.F90
+++ b/src/SURFEX/modd_chs_aerosol.F90
@@ -1,6 +1,6 @@
-!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
+!SFX_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier
 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
-!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
+!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !SFX_LIC for details. version 1.
 !!     ######################
        MODULE MODD_CHS_AEROSOL
@@ -180,8 +180,8 @@ REAL         :: XEMISSIGI     = 1.86   ! dispersion of primary aerosol
                                        ! emission for I mode
 REAL         :: XEMISSIGJ     = 1.29   ! dispersion of primary aerosol
                                        ! emission for J mode
- CHARACTER*4  :: CRGUNIT   = 'NUMB'    ! type of log-normal geometric mean radius given
-!                                     ! in nameliste (mass on number)
+ CHARACTER(len=4) :: CRGUNIT  = 'NUMB' ! type of log-normal geometric mean radius given
+!                                      ! in namelist (mass on number)
 
 
 
diff --git a/src/SURFEX/read_ascllv.F90 b/src/SURFEX/read_ascllv.F90
index a8fda182d299cb4ca247d17e94d1f2d180aaee71..aefd7a16eaa8d3865e06468e43e40d8d2ec1c5f7 100644
--- a/src/SURFEX/read_ascllv.F90
+++ b/src/SURFEX/read_ascllv.F90
@@ -67,7 +67,7 @@ INTEGER      :: IGLB                       ! logical unit
 !
 INTEGER      :: JLAT, JLON                 ! indexes of OLATLONMASK array
 !
-INTEGER*4, PARAMETER :: ILONG=200000
+INTEGER, PARAMETER :: ILONG=200000
 !
 REAL         :: ZVALUER
 REAL, DIMENSION(ILONG) :: ZVALUE          ! values of a data point
diff --git a/src/SURFEX/read_binllv.F90 b/src/SURFEX/read_binllv.F90
index 2357330807b67fd2d8122f72c5442e3d2513ff8f..12027951eabce3628442b6a4a962d9f010ca96c6 100644
--- a/src/SURFEX/read_binllv.F90
+++ b/src/SURFEX/read_binllv.F90
@@ -36,6 +36,10 @@ USE MODD_SSO_n, ONLY : SSO_t
 !
 USE MODD_PGD_GRID,   ONLY : LLATLONMASK
 !
+#ifdef SFX_MNH
+use modd_precision, only: MNHINT32
+#endif
+!
 USE MODI_OPEN_FILE
 USE MODI_CLOSE_FILE
 USE MODI_PT_BY_PT_TREATMENT
@@ -68,11 +72,23 @@ INTEGER      :: JLAT, JLON                 ! indexes of OLATLONMASK array
 !
 INTEGER, PARAMETER :: ILONG=1000
 !
+#ifdef SFX_MNH
+REAL(kind=MNHINT32) :: ZVALUER
+#else
 REAL*4         :: ZVALUER
+#endif
 REAL, DIMENSION(ILONG) :: ZVALUE          ! values of a data point
+#ifdef SFX_MNH
+REAL(kind=MNHINT32) :: ZLATR
+#else
 REAL*4         :: ZLATR
+#endif
 REAL, DIMENSION(ILONG) :: ZLAT              ! latitude of data point
+#ifdef SFX_MNH
+REAL(kind=MNHINT32) :: ZLONR, ZLONR2
+#else
 REAL*4         :: ZLONR, ZLONR2
+#endif
 REAL, DIMENSION(ILONG) :: ZLON              ! longitude of data point
 !
 INTEGER :: ICPT, ISTAT
diff --git a/src/SURFEX/uncompress_field.F90 b/src/SURFEX/uncompress_field.F90
index fadc0be3f840632dfd4432c870b6173361025bb0..684fcdef42379f9e1f2cea7236478c73875335be 100644
--- a/src/SURFEX/uncompress_field.F90
+++ b/src/SURFEX/uncompress_field.F90
@@ -2,7 +2,7 @@ SUBROUTINE UNCOMPRESS_FIELD(KLONG,PSEUIL,PFIELD_IN,PFIELD_OUT)
 
 IMPLICIT NONE
  
-INTEGER*4, INTENT(IN) :: KLONG
+INTEGER, INTENT(IN) :: KLONG
 REAL, INTENT(IN) :: PSEUIL
 REAL, DIMENSION(:), INTENT(IN) :: PFIELD_IN
 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD_OUT