diff --git a/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90 b/src/LIB/SURCOUCHE/src/extern_usersurc_ll.f90
index ba51210ca67dacfb5e65e130a113b26e004715a8..4d86a7d9070bd5a151b14c35ff893c544aed88f2 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 )
 !
@@ -1354,7 +1347,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 6e85037bdcbf621066df782bc2ed394fcf89fb0c..4914f3abd7c275ee2713f756f8e3e35e5c98f1a9 100644
--- a/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_exchange_ll.f90
@@ -157,7 +157,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 9405a7aa475dcdec434de27c41b39e68fe28c282..b19f828e52a89955c6ea5fca46389fdb200c8d55 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 
@@ -46,7 +38,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 452afe1c703a0ee883e4b5bf27e5891d3be36874..b0e8e7b2de884a2396f21c4217495d801a91546d 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                                             
 
@@ -45,7 +45,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                                             
 !
@@ -61,7 +61,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
 !
@@ -113,7 +113,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)
 !-------------------------------------------------------------------------
@@ -183,7 +183,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)
 !-------------------------------------------------------------------------
@@ -255,7 +255,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..1d92c3fb8ccdaad13426adaaa6440dc1dec267c2 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
@@ -95,7 +90,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
diff --git a/src/MNH/condensation.f90 b/src/MNH/condensation.f90
index da0087ff5d8f0c3600af141282ff952b43db1c2f..7056f6e84efbbf40664b3a292e2945d0af4a8aa9 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)
@@ -143,7 +143,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/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 ddf291409c07fdaea43629ee1aa7fb2987c86745..5e536be5a8a37ee8c8bf402a79d58035a57cfd24 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
@@ -195,10 +196,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 5c7be540c2669b5439600eb0182c9399293c8a08..429c0522bb81d1b2cf8d5509ad2e5e0d6a6c44ab 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
@@ -85,8 +86,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
diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90
index efd91de496c9606f25fd3d2619e3e3c66b04274c..76ed83fdd97e2d79f6c00cb165ffc20895a3dc42 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: 
@@ -189,8 +189,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/isocom.f b/src/MNH/isocom.f
index be6ce490c62e820652828471d08910662a039b11..f61d7aa0a2b4521278f97dbd00241fc8c7f32ca8 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.
@@ -94,7 +94,7 @@ 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]
@@ -3465,7 +3465,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 
@@ -3730,7 +3730,7 @@ CC
       SUBROUTINE Appendext (Filename, Defext, Overwrite)
 CC
 CC***********************************************************************
-      CHARACTER*(*) Filename, Defext
+      CHARACTER(len=*) Filename, Defext
       LOGICAL       Overwrite
 C
       CALL CHRBLN (Filename, Iend)
@@ -4412,7 +4412,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]
@@ -4454,7 +4454,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/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/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 85e161424ae45bcd3b477d2d81c710d75e709bd0..a90533596417e51a025d2fbc68a134337a0b3e9a 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
@@ -224,7 +224,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/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90
index 590a10f7f017beca02d95ca6302f60a093507493..6116fa3f90a75778e6a4285035708a6add594dfc 100644
--- a/src/MNH/resolved_cloud.f90
+++ b/src/MNH/resolved_cloud.f90
@@ -41,8 +41,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
@@ -329,8 +329,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
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/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 910497fcb815db97f760d827c1767efe6e91365f..5171d64406dc162561f552934392f76013a64f64 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
@@ -218,9 +218,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/turb.f90 b/src/MNH/turb.f90
index 156d30481999c6bcdbbe6c0500232879cf867a33..c182c77bab664feb6b8d7a0f7f98b57670268f28 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
@@ -407,11 +407,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 b85c896a9be5211c4eb8585602ee119de0e11ce0..fcde4fe3c699f3b34701e25522335933f68e1511 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
@@ -368,9 +368,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 eb6811a8fdf2183c1f8c5d7971bc790d50962688..267bd058d40430454dde94452c6c8b1c0f7941f2 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
@@ -324,7 +324,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 30de8c5d6f231e5f4c70e89e85b2b26615a784cf..7b412bcbac466222b67ecf267579ea3268efa0de 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
@@ -306,7 +306,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 598ad7c83270551b2db77cab76af3fcce040b751..3f443b6ff0a85ecb1b90015094f7aac1455eb473 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
 !
@@ -351,9 +351,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 5aa9cb6f0db4a8bbd405179e73db7b842da97ebe..e833fef4bebcadff52ee014938276cca4031b77e 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
@@ -370,9 +370,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/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)