diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam.src
similarity index 93%
rename from MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
rename to MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam.src
index cf7a2603a080289cefaba14ffb173946b753c5a4..aa4f986cc47de15c4b429be7541afb990ecb9265 100644
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/EXSEG1.nam.src
@@ -10,7 +10,10 @@
            LHORELAX_UVWTH = T, LHORELAX_RV = T, LVE_RELAX = T,
            NRIMX = 5, NRIMY = 5, XRIMKMAX = 0.01, XT4DIFU = 500. /
 &NAM_ADVn  CUVW_ADV_SCHEME = "WENO_K" , CMET_ADV_SCHEME = "PPM_01",NWENO_ORDER=5,CTEMP_SCHEME='RK53' /
-&NAM_PARAMn  CTURB = "TKEL", CRAD = "FIXE",
+&NAM_PARAMn  CTURB = "TKEL", 
+             CRAD = "ECMW",
+             !CRAD = "ECRA",
+             !CRAD = "FIXE",
              CCLOUD = "NONE", CDCONV = "NONE" /
 &NAM_LBCn  CLBCX = 2*"OPEN", CLBCY = 2*"OPEN" /
 &NAM_TURBn CTURBLEN = "BL89", CTURBDIM = "1DIM", LSUBG_COND = F /
diff --git a/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz b/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz
index 1b94aa9c54729170063efd9e1df2b7aaa1e06eda..06d7a8c654cc35a13179210b912cd31b9fb68148 100755
--- a/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz
+++ b/MY_RUN/KTEST/004_Reunion/003_mesonh/run_mesonh_xyz
@@ -1,10 +1,21 @@
+#!/bin/bash
 #MNH_LIC Copyright 1994-2014 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.
 set -x
 set -e
+
 ln -fs ../002_prep_ideal_case/REUNION_IDEA.*??? .
 ln -sf ../001_prep_pgd/REUNION_PGD_1km5.* .
+
+if [ "x${MNH_ECRAD}" != "x" ]  ; then
+ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/RAD* .
+ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/*.nc .
+sed -e's/ECMW/ECRA/g' EXSEG1.nam.src > EXSEG1.nam
+else
+cp EXSEG1.nam.src EXSEG1.nam
+fi
+
 rm -f REUNI.1.* OUT*
 time ${MPIRUN} MESONH${XYZ}
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
index 6878792dd3dfe3e2aa1e7d1f88351f877bf511aa..1125986838ee228162710f31df875d8e1b5d41cb 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG1.nam.src
@@ -9,7 +9,9 @@
            LHORELAX_UVWTH = T, LHORELAX_RV = T, LVE_RELAX = T,
            NRIMX = 5, NRIMY = 5, XRIMKMAX = 0.0083, XT4DIFU = 5000. /
 &NAM_ADVn  CUVW_ADV_SCHEME="CEN4TH",CMET_ADV_SCHEME = "PPM_01", CSV_ADV_SCHEME = "PPM_01" CTEMP_SCHEME="LEFR"/
-&NAM_PARAMn  CCLOUD = "KESS", CTURB = "TKEL", CRAD = "ECMW",
+&NAM_PARAMn  CCLOUD = "KESS", CTURB = "TKEL", 
+             CRAD = "ECMW",
+             !CRAD = "ECRA",
              CDCONV = "KAFR",CSCONV="KAFR" /
 &NAM_PARAM_RADn  XDTRAD = 3600., XDTRAD_CLONLY = 3600., NRAD_COLNBR = 400 /
 &NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1 LREFRESH_ALL = T,LDOWN = T /
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src
index 9588726762cf86482c3cb54750d16a6f7111dd1e..d081e1bd102731717b9f7491536ababe39aa3dc3 100644
--- a/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/EXSEG2.nam.src
@@ -4,7 +4,10 @@
            LHORELAX_RS= F, LHORELAX_RI= F, LHORELAX_RG= F, LHORELAX_TKE= F,
            NRIMX = 0, NRIMY = 0, LVE_RELAX = T, XT4DIFU = 1500. /
 &NAM_ADVn CUVW_ADV_SCHEME="CEN4TH",CMET_ADV_SCHEME = "PPM_01", CSV_ADV_SCHEME = "PPM_01" CTEMP_SCHEME="LEFR"/
-&NAM_PARAMn  CCLOUD = "KESS", CTURB = "TKEL", CRAD = "ECMW", CDCONV = "KAFR" /
+&NAM_PARAMn  CCLOUD = "KESS", CTURB = "TKEL", 
+              CRAD = "ECMW", 
+              !CRAD = "ECRA",
+              CDCONV = "KAFR" /
 &NAM_PARAM_RADn  XDTRAD = 1800., XDTRAD_CLONLY = 1800., LCLEAR_SKY = F,
              NRAD_COLNBR = 400 /
 &NAM_PARAM_KAFRn XDTCONV = 300., NICE = 1, LREFRESH_ALL = T,
diff --git a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
index 8282d87e63c338344461e845327c5fc06d6fd74e..c7df321747e2129d1f0f3dcdcb75357b0bcae2b8 100755
--- a/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
+++ b/MY_RUN/KTEST/007_16janvier/008_run2/run_mesonh_xyz
@@ -5,11 +5,23 @@
 #MNH_LIC for details. version 1.
 set -x
 set -e
+
 rm -f 16JAN* OUT*  EXSEG?.nam 
-cp EXSEG1.nam.src EXSEG1.nam
-cp EXSEG2.nam.src EXSEG2.nam
+
 ln -sf  ../004_arp2lfi/16JAN_06_MNH.*??? .
 ln -sf  ../006_preal/16JAN_06_MNH2.*??? .
 ln -sf  ../003_nest/16JAN98_36km.neste1.* .
 ln -sf  ../003_nest/16JAN98_9km.neste1.* .
+
+if [ "x${MNH_ECRAD}" != "x" ]  ; then
+ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/RAD* .
+ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/*.nc .
+sed -e's/ECMW/ECRA/g' EXSEG1.nam.src > EXSEG1.nam
+sed -e's/ECMW/ECRA/g' EXSEG2.nam.src > EXSEG2.nam
+else
+cp EXSEG1.nam.src EXSEG1.nam
+cp EXSEG2.nam.src EXSEG2.nam
+fi
+
+
 time ${MPIRUN} MESONH${XYZ}
diff --git a/MY_RUN/KTEST/007_16janvier/009_diag/run_diag_xyz b/MY_RUN/KTEST/007_16janvier/009_diag/run_diag_xyz
index 53e94f7769e24d282382fd3ea8e4feb350fb77d8..8d84060a3fb93980bd3c7ca8f311eb4ae4af13ab 100755
--- a/MY_RUN/KTEST/007_16janvier/009_diag/run_diag_xyz
+++ b/MY_RUN/KTEST/007_16janvier/009_diag/run_diag_xyz
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #MNH_LIC Copyright 1994-2014 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  
@@ -13,6 +13,11 @@ ln -sf  ../008_run2/16JAN.1.12B18.001.*??? .
 ln -sf ../003_nest/16JAN98_9km.neste1.* .
 ln -sf ../003_nest/16JAN98_36km.neste1.* .
 
+if [ "x${MNH_ECRAD}" != "x" ]  ; then
+ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/RAD* .
+ln -sf ${SRC_MESONH}/src/LIB/RAD/ecrad-1.0.1/data/*.nc .
+fi
+
 cp  DIAG1.nam1 DIAG1.nam
 time ${MPIRUN} DIAG${XYZ}
 #exit
diff --git a/bin/spll b/bin/spll
index 9d6da84562e85fe5c154fef36f30d5a3a07ec5cc..c8b0ada9e568862d70b7ffd1e3d8a9689e091453 100755
--- a/bin/spll
+++ b/bin/spll
@@ -25,7 +25,8 @@ ch_f77.fx90|nband_model.fx90|BASIC.f90|mode_tmat.f90|\
 ini_cmfshall.f90|mode_double_double.f90|mode_fgau.f90|\
 extern_usersurc_ll.f90|\
 extern_userio.f90|fmreadwrit.f90|fm_read_ll.f90|poub.f90|\
-mode_glt.*.F90"
+mode_glt.*.F90|\
+rrtm_.*.F90|srtm_.*.F90"
 #
 
 if [ "$SUF" = "f" ]
diff --git a/conf/profile_mesonh.ihm b/conf/profile_mesonh.ihm
index a4f0976852c606e6305a909fb083ea4d885453c9..e5d3c74cd06a5424140454bce42a6596bc327ad9 100755
--- a/conf/profile_mesonh.ihm
+++ b/conf/profile_mesonh.ihm
@@ -104,6 +104,11 @@ export MNH_FOREFIRE=${MNH_FOREFIRE}
 export MNH_RTTOV=${MNH_RTTOV}
 export VER_RTTOV=${VER_RTTOV}
 #
+#  ECRAD
+#
+export MNH_ECRAD=${MNH_ECRAD}
+export VERSION_ECRAD=${VERSION_ECRAD}
+#
 #  OASIS
 #
 export VER_OASIS=${VER_OASIS}
@@ -122,7 +127,7 @@ export VERSION_NCL=${VERSION_NCL}
 ##########################################################
 ##########################################################
 #
-export XYZ="-\${ARCH}\${MNH_REAL:+\${MNH_REAL}}I\${MNH_INT}-\${VERSION_XYZ}\${VER_USER:+-\${VER_USER}}-\${VER_MPI}-\${OPTLEVEL}"
+export XYZ="-\${ARCH}\${MNH_REAL:+\${MNH_REAL}}I\${MNH_INT}-\${VERSION_XYZ}\${MNH_ECRAD:+-ECRAD}\${VER_USER:+-\${VER_USER}}-\${VER_MPI}-\${OPTLEVEL}"
 #[ "x\${VER_USER}" != "x" ] && export XYZ="\${XYZ}-\${VER_USER}"
 # PATH to find tools like "makegen, etc ..."
 export BIN_TOOLS=${BIN_TOOLS}
diff --git a/src/LIB/RAD/ECMWF_RAD/lwc.f90 b/src/LIB/RAD/ECMWF_RAD/lwc.f90
index 77ace7e12ec510d3b2f75883e143f33e1d007460..c10e3b17b56107dca51e84c21726c291ce309ce2 100644
--- a/src/LIB/RAD/ECMWF_RAD/lwc.f90
+++ b/src/LIB/RAD/ECMWF_RAD/lwc.f90
@@ -65,8 +65,8 @@ SUBROUTINE LWC &
 
 #include "tsmbkind.h"
 
-USE YOERAD   , ONLY : NOVLP
-USE YOERDI   , ONLY : REPCLC
+USE OYOERAD   , ONLY : NOVLP
+USE OYOERDI   , ONLY : REPCLC
 USE YOEOVLP  , ONLY : RA1OVLP
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/lwu.f90 b/src/LIB/RAD/ECMWF_RAD/lwu.f90
index 1bd44783aeb0960e6d855416192ca23b61abe8f8..adbf214cf3a2e58f33102fcb96bc52d63c5b502d 100644
--- a/src/LIB/RAD/ECMWF_RAD/lwu.f90
+++ b/src/LIB/RAD/ECMWF_RAD/lwu.f90
@@ -67,12 +67,12 @@ SUBROUTINE LWU &
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RG
-USE YOESW    , ONLY : RAER
+USE OYOMCST   , ONLY : RG
+USE OYOESW    , ONLY : RAER
 USE YOELW    , ONLY : NSIL     ,NUA      ,NG1      ,NG1P1    ,&
             &ALWT     ,BLWT     ,RO3T     ,RT1      ,TREF     ,&
             &RVGCO2   ,RVGH2O   ,RVGO3
-USE YOERDI   , ONLY : RCH4     ,RN2O     ,RCFC11   ,RCFC12
+USE OYOERDI   , ONLY : RCH4     ,RN2O     ,RCFC11   ,RCFC12
 USE YOERDU   , ONLY : R10E     ,REPSCO   ,REPSCQ
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/olwc.f90 b/src/LIB/RAD/ECMWF_RAD/olwc.f90
index 03a43d5a9473abc409b60fad71dff3dfeeb39817..2e8f0f78289cb127e10cdd150183dcff8e2962d8 100644
--- a/src/LIB/RAD/ECMWF_RAD/olwc.f90
+++ b/src/LIB/RAD/ECMWF_RAD/olwc.f90
@@ -67,8 +67,8 @@ SUBROUTINE OLWC ( KIDIA,KFDIA,KLON,KLEV &
 
 #include "tsmbkind.h"
 
-USE YOERAD   , ONLY : NOVLP
-USE YOERDI   , ONLY : REPCLC
+USE OYOERAD   , ONLY : NOVLP
+USE OYOERDI   , ONLY : REPCLC
 USE YOEDBUG  , ONLY : LDEBUG
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/olwu.f90 b/src/LIB/RAD/ECMWF_RAD/olwu.f90
index f5ff733d896deea070d352a2e93e3a9cdcc07957..e6d2a9af597a86eebdb6a865f60c59fa0a58295a 100644
--- a/src/LIB/RAD/ECMWF_RAD/olwu.f90
+++ b/src/LIB/RAD/ECMWF_RAD/olwu.f90
@@ -62,12 +62,12 @@ SUBROUTINE OLWU ( KIDIA, KFDIA, KLON, KLEV &
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RG
-USE YOESW    , ONLY : RAER
+USE OYOMCST   , ONLY : RG
+USE OYOESW    , ONLY : RAER
 USE YOEOLW   , ONLY : NISP     ,NUA      ,NG1      ,NG1P1    ,&
             &AT       ,BT       ,RT1      ,TREF     ,OCT      ,&
             &RVGCO2   ,RVGH2O   ,RVGO3
-USE YOERDI   , ONLY : RCH4     ,RN2O     ,RCFC11   ,RCFC12
+USE OYOERDI   , ONLY : RCH4     ,RN2O     ,RCFC11   ,RCFC12
 USE YOERDU   , ONLY : R10E     ,REPSCO   ,REPSCQ
 USE YOEDBUG  , ONLY : LDEBUG
 
diff --git a/src/LIB/RAD/ECMWF_RAD/olwv.f90 b/src/LIB/RAD/ECMWF_RAD/olwv.f90
index 1afcb28c5f553c6468a44a40fd84d692f2c86f6f..100e51c84e8abdb526bd27566635c638d9a86bdb 100644
--- a/src/LIB/RAD/ECMWF_RAD/olwv.f90
+++ b/src/LIB/RAD/ECMWF_RAD/olwv.f90
@@ -85,7 +85,6 @@ INTEGER_M :: KFDIA
 INTEGER_M :: KIDIA
 INTEGER_M :: KLEV
 INTEGER_M :: KLON
-INTEGER_M :: KTRAER
 INTEGER_M :: KUAER, KTRAER
 
 !-----------------------------------------------------------------------
diff --git a/src/LIB/RAD/ECMWF_RAD/parrrtm.f90 b/src/LIB/RAD/ECMWF_RAD/oparrrtm.f90
similarity index 98%
rename from src/LIB/RAD/ECMWF_RAD/parrrtm.f90
rename to src/LIB/RAD/ECMWF_RAD/oparrrtm.f90
index 43da9523d16936c4305df4730b9973f820c9a9ca..8fbe4897c6f25794954c2e8cb66e4cdf7627e62f 100644
--- a/src/LIB/RAD/ECMWF_RAD/parrrtm.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oparrrtm.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:36
 !-----------------------------------------------------------------
-MODULE PARRRTM
+MODULE OPARRRTM
 
 
 #include "tsmbkind.h"
@@ -68,4 +68,4 @@ INTEGER_M, PARAMETER :: NGS14 = 136
 INTEGER_M, PARAMETER :: NGS15 = 138
 
 !     ------------------------------------------------------------------
-END MODULE PARRRTM
+END MODULE OPARRRTM
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb1.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb1.f90
similarity index 85%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb1.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb1.f90
index d99302b120cf9551e695377d0c90d77250c0acd8..33e0a9bdac2e4cd459ec0341a6209878bca390d5 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb1.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb1.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:36
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB1
+SUBROUTINE ORRTM_CMBGB1
 !***************************************************************************
 
 !  The subroutines CMBGB1->CMBGB16 input the absorption coefficient
@@ -21,12 +21,12 @@ SUBROUTINE RRTM_CMBGB1
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG1
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG1
 
-USE YOERRTO1 , ONLY : KAO, KBO, SELFREFO, FORREFO, FRACREFAO,FRACREFBO
-USE YOERRTA1 , ONLY : KA , KB , SELFREF , FORREF , FRACREFA ,FRACREFB
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO1 , ONLY : KAO, KBO, SELFREFO, FORREFO, FRACREFAO,FRACREFBO
+USE OYOERRTA1 , ONLY : KA , KB , SELFREF , FORREF , FRACREFA ,FRACREFB
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -110,4 +110,4 @@ DO IGC = 1,NGC(1)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB1
+END SUBROUTINE ORRTM_CMBGB1
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb10.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb10.f90
similarity index 80%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb10.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb10.f90
index 0cd7e157aec4997e1c24c22ecda04b3ceba93578..7f69f2a2948106289e7efd1d6e7c16ab3eaa25b0 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb10.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb10.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:36
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB10
+SUBROUTINE ORRTM_CMBGB10
 !***************************************************************************
 
 !     BAND 10:  1390-1480 cm-1 (low - H2O; high - H2O)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB10
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG10
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG10
 
-USE YOERRTO10, ONLY : KAO     ,KBO      ,FRACREFAO   ,FRACREFBO
-USE YOERRTA10, ONLY : KA      ,KB       ,FRACREFA    ,FRACREFB
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO10, ONLY : KAO     ,KBO      ,FRACREFAO   ,FRACREFBO
+USE OYOERRTA10, ONLY : KA      ,KB       ,FRACREFA    ,FRACREFB
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -86,4 +86,4 @@ DO IGC = 1,NGC(10)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB10
+END SUBROUTINE ORRTM_CMBGB10
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb11.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb11.f90
similarity index 82%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb11.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb11.f90
index 960b3f70703ef41c471387b48f350e303758ec69..1161d0c56ff8cc48833e9fcea79b7d6104835d27 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb11.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb11.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:36
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB11
+SUBROUTINE ORRTM_CMBGB11
 !***************************************************************************
 
 !     BAND 11:  1480-1800 cm-1 (low - H2O; high - H2O)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB11
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG11
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG11
 
-USE YOERRTO11, ONLY : KAO     ,KBO     ,SELFREFO    ,FRACREFAO ,FRACREFBO
-USE YOERRTA11, ONLY : KA      ,KB      ,SELFREF     ,FRACREFA  ,FRACREFB
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO11, ONLY : KAO     ,KBO     ,SELFREFO    ,FRACREFAO ,FRACREFBO
+USE OYOERRTA11, ONLY : KA      ,KB      ,SELFREF     ,FRACREFA  ,FRACREFB
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -100,4 +100,4 @@ DO IGC = 1,NGC(11)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB11
+END SUBROUTINE ORRTM_CMBGB11
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb12.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb12.f90
similarity index 82%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb12.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb12.f90
index e7a169d5740c9897b390c09229cc9065858ac7b3..3f92b4999af861a8130ffb09e2442699f45a74ff 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb12.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb12.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB12
+SUBROUTINE ORRTM_CMBGB12
 !***************************************************************************
 
 !     BAND 12:  1800-2080 cm-1 (low - H2O,CO2; high - nothing)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB12
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG12
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG12
 
-USE YOERRTO12, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA12, ONLY : KA      ,SELFREF    ,FRACREFA
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO12, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA12, ONLY : KA      ,SELFREF    ,FRACREFA
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -91,4 +91,4 @@ DO JP = 1,8
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB12
+END SUBROUTINE ORRTM_CMBGB12
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb13.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb13.f90
similarity index 82%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb13.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb13.f90
index 60e39c56e0cc5610873c8f1ea8460b79e1fffbad..1c4748ea23ff0727054b1d72b214d0f3675de542 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb13.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb13.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB13
+SUBROUTINE ORRTM_CMBGB13
 !***************************************************************************
 
 !     BAND 13:  2080-2250 cm-1 (low - H2O,N2O; high - nothing)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB13
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG13
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG13
 
-USE YOERRTO13, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA13, ONLY : KA      ,SELFREF    ,FRACREFA
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO13, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA13, ONLY : KA      ,SELFREF    ,FRACREFA
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -91,4 +91,4 @@ DO JP = 1,8
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB13
+END SUBROUTINE ORRTM_CMBGB13
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb14.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb14.f90
similarity index 82%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb14.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb14.f90
index 554571dd07cdd8f7eae607a80255763ab906de5e..4b45f233b548e82b0d10167c56dc016866cb037c 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb14.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb14.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB14
+SUBROUTINE ORRTM_CMBGB14
 !***************************************************************************
 
 !     BAND 14:  2250-2380 cm-1 (low - CO2; high - CO2)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB14
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG14
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG14
 
-USE YOERRTO14, ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
-USE YOERRTA14, ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,FRACREFB
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO14, ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
+USE OYOERRTA14, ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,FRACREFB
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -101,4 +101,4 @@ DO IGC = 1,NGC(14)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB14
+END SUBROUTINE ORRTM_CMBGB14
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb15.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb15.f90
similarity index 82%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb15.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb15.f90
index cef2bb5a7e20b9d3c2001b7e8d6a5bf7befc70f9..82447a06b3d883581b349c162f0fafb47f527160 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb15.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb15.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB15
+SUBROUTINE ORRTM_CMBGB15
 !***************************************************************************
 
 !     BAND 15:  2380-2600 cm-1 (low - N2O,CO2; high - nothing)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB15
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG15
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG15
 
-USE YOERRTO15, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA15, ONLY : KA      ,SELFREF    ,FRACREFA
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO15, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA15, ONLY : KA      ,SELFREF    ,FRACREFA
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -91,4 +91,4 @@ DO JP = 1,8
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB15
+END SUBROUTINE ORRTM_CMBGB15
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb16.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb16.f90
similarity index 82%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb16.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb16.f90
index 84fc3f57281a9acdcfc3e5c82d5daa1b192804a0..8ad40128f9c55499e3012652796a7212844df4cb 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb16.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb16.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB16
+SUBROUTINE ORRTM_CMBGB16
 !***************************************************************************
 
 !     BAND 16:  2600-3000 cm-1 (low - H2O,CH4; high - nothing)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB16
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG16
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG16
 
-USE YOERRTO16, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA16, ONLY : KA      ,SELFREF    ,FRACREFA
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO16, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA16, ONLY : KA      ,SELFREF    ,FRACREFA
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -92,4 +92,4 @@ DO JP = 1,8
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB16
+END SUBROUTINE ORRTM_CMBGB16
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb2.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb2.f90
similarity index 85%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb2.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb2.f90
index b37d44b2fc08c956873a306c96b8572669af475f..41647b563fd2bafa1b76768f4cabefb20e3c5e4c 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb2.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb2.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB2
+SUBROUTINE ORRTM_CMBGB2
 !***************************************************************************
 
 !     BAND 2:  250-500 cm-1 (low - H2O; high - H2O)
@@ -14,14 +14,14 @@ SUBROUTINE RRTM_CMBGB2
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG2
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG2
 
-USE YOERRTO2 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO2 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,FORREFO
-USE YOERRTA2 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
+USE OYOERRTA2 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
            &FRACREFB   ,FORREF     ,REFPARAM 
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -125,4 +125,4 @@ DO IGC = 1,NGC(2)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB2
+END SUBROUTINE ORRTM_CMBGB2
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb3.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb3.f90
similarity index 87%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb3.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb3.f90
index 15ceeadafeec438193990b8e291e9c1570df07cd..08d38a45e37cff337ae3b192d421f0b6fa93dfe7 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb3.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb3.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB3
+SUBROUTINE ORRTM_CMBGB3
 !***************************************************************************
 
 !     BAND 3:  500-630 cm-1 (low - H2O,CO2; high - H2O,CO2)
@@ -14,14 +14,14 @@ SUBROUTINE RRTM_CMBGB3
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG3
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG3
 
-USE YOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,FORREFO    ,ABSN2OAO   ,ABSN2OBO
-USE YOERRTA3 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
+USE OYOERRTA3 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
            &FRACREFB   ,FORREF    ,ABSN2OA   ,ABSN2OB
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -150,4 +150,4 @@ DO JP = 1,4
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB3
+END SUBROUTINE ORRTM_CMBGB3
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb4.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb4.f90
similarity index 85%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb4.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb4.f90
index d63c3ed474034e3e14f82a4aaad9e3d38a4b5dc6..a40fdf66d106ceba8b8a1f1a67ba17856bcfa80d 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb4.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb4.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB4
+SUBROUTINE ORRTM_CMBGB4
 !***************************************************************************
 
 !     BAND 4:  630-700 cm-1 (low - H2O,CO2; high - O3,CO2)
@@ -14,12 +14,12 @@ SUBROUTINE RRTM_CMBGB4
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG4
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG4
 
-USE YOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
-USE YOERRTA4 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,FRACREFB
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
+USE OYOERRTA4 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,FRACREFB
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -135,4 +135,4 @@ DO JP = 1,5
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB4
+END SUBROUTINE ORRTM_CMBGB4
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb5.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb5.f90
similarity index 87%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb5.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb5.f90
index 57e143f968b717e0ad7222cc30ea5f1b4e808900..b45472fc8f5641f5fc9d440006c1b5085fc1079a 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb5.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb5.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB5
+SUBROUTINE ORRTM_CMBGB5
 !***************************************************************************
 
 !     BAND 5:  700-820 cm-1 (low - H2O,CO2; high - O3,CO2)
@@ -14,14 +14,14 @@ SUBROUTINE RRTM_CMBGB5
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG5
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG5
 
-USE YOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, CCL4O
-USE YOERRTA5 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
+USE OYOERRTA5 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
            &FRACREFB , CCL4
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -149,4 +149,4 @@ DO JP = 1,4
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB5
+END SUBROUTINE ORRTM_CMBGB5
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb6.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb6.f90
similarity index 83%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb6.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb6.f90
index 7c36241245a1f64adca4f08d72c27e17a5486f3b..9c9f92d7a7c23d430e219cf71ede274665847f9f 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb6.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb6.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB6
+SUBROUTINE ORRTM_CMBGB6
 !***************************************************************************
 
 !     BAND 6:  820-980 cm-1 (low - H2O; high - nothing)
@@ -14,14 +14,14 @@ SUBROUTINE RRTM_CMBGB6
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG6
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG6
 
-USE YOERRTO6 , ONLY : KAO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO6 , ONLY : KAO     ,SELFREFO   ,FRACREFAO  ,&
            &ABSCO2O ,CFC11ADJO,CFC12O
-USE YOERRTA6 , ONLY : KA      ,SELFREF    ,FRACREFA   ,&
+USE OYOERRTA6 , ONLY : KA      ,SELFREF    ,FRACREFA   ,&
            &ABSCO2  ,CFC11ADJ ,CFC12
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -97,4 +97,4 @@ DO IGC = 1,NGC(6)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB6
+END SUBROUTINE ORRTM_CMBGB6
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb7.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb7.f90
similarity index 85%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb7.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb7.f90
index 03d1ed0fa5f2034883df90f5256aacb92f1b7b11..bd472da56850ddfefa40bcee502de3dd66bbf97b 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb7.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb7.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB7
+SUBROUTINE ORRTM_CMBGB7
 !***************************************************************************
 
 !     BAND 7:  980-1080 cm-1 (low - H2O,O3; high - O3)
@@ -14,14 +14,14 @@ SUBROUTINE RRTM_CMBGB7
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG7
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG7
 
-USE YOERRTO7 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO7 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, ABSCO2O
-USE YOERRTA7 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
+USE OYOERRTA7 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
            &FRACREFB , ABSCO2
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -129,4 +129,4 @@ DO IGC = 1,NGC(7)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB7
+END SUBROUTINE ORRTM_CMBGB7
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb8.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb8.f90
similarity index 86%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb8.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb8.f90
index 389749465294eec0ac3b51230116edb1da6c2620..305d9331a4807e9d026a665edb8dbffebe538397 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb8.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb8.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB8
+SUBROUTINE ORRTM_CMBGB8
 !***************************************************************************
 
 !     BAND 8:  1080-1180 cm-1 (low (i.e.>~300mb) - H2O; high - O3)
@@ -14,16 +14,16 @@ SUBROUTINE RRTM_CMBGB8
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG8
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG8
 
-USE YOERRTO8 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO8 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, ABSCO2AO,ABSCO2BO,ABSN2OAO   ,ABSN2OBO   ,&
            &CFC12O   , CFC22ADJO
-USE YOERRTA8 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
+USE OYOERRTA8 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
            &FRACREFB , ABSCO2A ,ABSCO2B ,ABSN2OA    ,ABSN2OB    ,&
            &CFC12    , CFC22ADJ
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -110,4 +110,4 @@ DO IGC = 1,NGC(8)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB8
+END SUBROUTINE ORRTM_CMBGB8
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb9.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb9.f90
similarity index 86%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb9.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb9.f90
index 8273646c353643b0d386db71bf7061f6474d9373..fe80a6e3964d04c2b2c648f658f2fbacfe3b1c2c 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_cmbgb9.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_cmbgb9.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_CMBGB9
+SUBROUTINE ORRTM_CMBGB9
 !***************************************************************************
 
 !     BAND 9:  1180-1390 cm-1 (low - H2O,CH4; high - CH4)
@@ -14,14 +14,14 @@ SUBROUTINE RRTM_CMBGB9
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG9
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,NG9
 
-USE YOERRTO9 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO9 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, ABSN2OO
-USE YOERRTA9 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA  ,&
+USE OYOERRTA9 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA  ,&
            &FRACREFB , ABSN2O
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 IMPLICIT NONE
 
@@ -141,4 +141,4 @@ DO IGC = 1,NGC(9)
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_CMBGB9
+END SUBROUTINE ORRTM_CMBGB9
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_ecrt_140gp.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_ecrt_140gp.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_ecrt_140gp.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_ecrt_140gp.f90
index 45fd967198e62a18a0b41fe3f8c458eb0f8a345e..b24494ea08983d9d2015048bb148d8e2cd03786d 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_ecrt_140gp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_ecrt_140gp.f90
@@ -1,6 +1,6 @@
 !****************** SUBROUTINE RRTM_ECRT_140GP **************************
 
-SUBROUTINE RRTM_ECRT_140GP &
+SUBROUTINE ORRTM_ECRT_140GP &
  &( iplon, klon , klev, kcld &
  &, paer , paph , pap &
  &, pts  , pth  , pt &
@@ -22,11 +22,11 @@ SUBROUTINE RRTM_ECRT_140GP &
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,JPLAY   ,&
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,JPLAY   ,&
             &JPINPX
-USE YOERAD   , ONLY : NOVLP
-USE YOERDI   , ONLY : RCARDI   ,RCH4     ,RN2O    ,RCFC11  ,RCFC12
-USE YOESW    , ONLY : RAER
+USE OYOERAD   , ONLY : NOVLP
+USE OYOERDI   , ONLY : RCARDI   ,RCH4     ,RN2O    ,RCFC11  ,RCFC12
+USE OYOESW    , ONLY : RAER
 
 !------------------------------Arguments--------------------------------
 
@@ -420,5 +420,5 @@ ENDIF
 !     ------------------------------------------------------------------
 
 RETURN
-END SUBROUTINE RRTM_ECRT_140GP
+END SUBROUTINE ORRTM_ECRT_140GP
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_gasabs1a_140gp.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_gasabs1a_140gp.f90
similarity index 78%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_gasabs1a_140gp.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_gasabs1a_140gp.f90
index 0ec331027ae27939314ff2b99791b05b87574a42..a372b6d9bd58e24cca78cbdb1fb7aa43cc4376c6 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_gasabs1a_140gp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_gasabs1a_140gp.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
-SUBROUTINE RRTM_GASABS1A_140GP (KLEV,ATR1,OD,TF1,COLDRY,WX,&
+SUBROUTINE ORRTM_GASABS1A_140GP (KLEV,ATR1,OD,TF1,COLDRY,WX,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLO3,COLN2O,COLCH4,COLO2,CO2MULT,&
   &LAYTROP,LAYSWTCH,LAYLOW,SELFFAC,SELFFRAC,INDSELF,PFRAC)
@@ -13,25 +13,25 @@ SUBROUTINE RRTM_GASABS1A_140GP (KLEV,ATR1,OD,TF1,COLDRY,WX,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY    ,JPBAND   ,JPGPT   ,JPXSEC
-USE YOERRTAB , ONLY : TRANS    ,BPADE
+USE OPARRRTM  , ONLY : JPLAY    ,JPBAND   ,JPGPT   ,JPXSEC
+USE OYOERRTAB , ONLY : TRANS    ,BPADE
 !
-USE MODI_RRTM_TAUMOL1
-USE MODI_RRTM_TAUMOL2
-USE MODI_RRTM_TAUMOL3
-USE MODI_RRTM_TAUMOL4
-USE MODI_RRTM_TAUMOL5
-USE MODI_RRTM_TAUMOL6
-USE MODI_RRTM_TAUMOL7
-USE MODI_RRTM_TAUMOL8
-USE MODI_RRTM_TAUMOL9
-USE MODI_RRTM_TAUMOL10
-USE MODI_RRTM_TAUMOL11
-USE MODI_RRTM_TAUMOL12
-USE MODI_RRTM_TAUMOL13
-USE MODI_RRTM_TAUMOL14
-USE MODI_RRTM_TAUMOL15
-USE MODI_RRTM_TAUMOL16
+!USE MODI_ORRTM_TAUMOL1
+!USE MODI_ORRTM_TAUMOL2
+!USE MODI_ORRTM_TAUMOL3
+!USE MODI_ORRTM_TAUMOL4
+!USE MODI_ORRTM_TAUMOL5
+!USE MODI_ORRTM_TAUMOL6
+!USE MODI_ORRTM_TAUMOL7
+!USE MODI_ORRTM_TAUMOL8
+!USE MODI_ORRTM_TAUMOL9
+!USE MODI_ORRTM_TAUMOL10
+!USE MODI_ORRTM_TAUMOL11
+!USE MODI_ORRTM_TAUMOL12
+!USE MODI_ORRTM_TAUMOL13
+!USE MODI_ORRTM_TAUMOL14
+!USE MODI_ORRTM_TAUMOL15
+!USE MODI_ORRTM_TAUMOL16
 !
 IMPLICIT NONE
 
@@ -95,52 +95,52 @@ REAL_B :: ODEPTH, SECANG, TF
 !- SECANG is equal to the secant of the diffusivity angle.
 SECANG = 1.66_JPRB
 
-CALL RRTM_TAUMOL1  (KLEV,TAU,&
+CALL ORRTM_TAUMOL1  (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,&
   &COLH2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL2  (KLEV,TAU,COLDRY,&
+CALL ORRTM_TAUMOL2  (KLEV,TAU,COLDRY,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,&
   &COLH2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL3  (KLEV,TAU,&
+CALL ORRTM_TAUMOL3  (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLN2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL4  (KLEV,TAU,&
+CALL ORRTM_TAUMOL4  (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLO3,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL5  (KLEV,TAU,WX,&
+CALL ORRTM_TAUMOL5  (KLEV,TAU,WX,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLO3,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL6  (KLEV,TAU,WX,&
+CALL ORRTM_TAUMOL6  (KLEV,TAU,WX,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,CO2MULT,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL7  (KLEV,TAU,&
+CALL ORRTM_TAUMOL7  (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLO3,CO2MULT,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL8  (KLEV,TAU,WX,&
+CALL ORRTM_TAUMOL8  (KLEV,TAU,WX,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,COLO3,COLN2O,CO2MULT,LAYSWTCH,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL9  (KLEV,TAU,&
+CALL ORRTM_TAUMOL9  (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLN2O,COLCH4,LAYTROP,LAYSWTCH,LAYLOW,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL10 (KLEV,TAU,&
+CALL ORRTM_TAUMOL10 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,LAYTROP,PFRAC)
-CALL RRTM_TAUMOL11 (KLEV,TAU,&
+CALL ORRTM_TAUMOL11 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL12 (KLEV,TAU,&
+CALL ORRTM_TAUMOL12 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL13 (KLEV,TAU,&
+CALL ORRTM_TAUMOL13 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLN2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL14 (KLEV,TAU,&
+CALL ORRTM_TAUMOL14 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLCO2,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL15 (KLEV,TAU,&
+CALL ORRTM_TAUMOL15 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLN2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
-CALL RRTM_TAUMOL16 (KLEV,TAU,&
+CALL ORRTM_TAUMOL16 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCH4,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -162,4 +162,4 @@ ENDDO
 !     -----------------------------------------------------------------
 
 RETURN
-END SUBROUTINE RRTM_GASABS1A_140GP
+END SUBROUTINE ORRTM_GASABS1A_140GP
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_init_140gp.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_init_140gp.f90
similarity index 67%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_init_140gp.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_init_140gp.f90
index e0c7c3b0bc960f23b5b01b2f815482b5b48b5805..baf6161f90c0b169f13d8cb7e58fc13b04d55c04 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_init_140gp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_init_140gp.f90
@@ -5,36 +5,36 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !***************************************************************************
-SUBROUTINE RRTM_INIT_140GP
+SUBROUTINE ORRTM_INIT_140GP
 !***************************************************************************
 !     Reformatted for F90 by JJMorcrette, ECMWF, 980714
 
 ! Parameters
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT
-USE YOERRTWN , ONLY : NG       ,NSPA     ,NSPB
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT
+USE OYOERRTWN , ONLY : NG       ,NSPA     ,NSPB
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 ! Output
-USE YOERRTBG2, ONLY : CORR1    ,CORR2
-USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
+USE OYOERRTBG2, ONLY : CORR1    ,CORR2
+USE OYOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
 !
-USE MODI_RRTM_CMBGB1
-USE MODI_RRTM_CMBGB2
-USE MODI_RRTM_CMBGB3
-USE MODI_RRTM_CMBGB4
-USE MODI_RRTM_CMBGB5
-USE MODI_RRTM_CMBGB6
-USE MODI_RRTM_CMBGB7
-USE MODI_RRTM_CMBGB8
-USE MODI_RRTM_CMBGB9
-USE MODI_RRTM_CMBGB10
-USE MODI_RRTM_CMBGB11
-USE MODI_RRTM_CMBGB12
-USE MODI_RRTM_CMBGB13
-USE MODI_RRTM_CMBGB14
-USE MODI_RRTM_CMBGB15
-USE MODI_RRTM_CMBGB16
+!USE MODI_ORRTM_CMBGB1
+!USE MODI_ORRTM_CMBGB2
+!USE MODI_ORRTM_CMBGB3
+!USE MODI_ORRTM_CMBGB4
+!USE MODI_ORRTM_CMBGB5
+!USE MODI_ORRTM_CMBGB6
+!USE MODI_ORRTM_CMBGB7
+!USE MODI_ORRTM_CMBGB8
+!USE MODI_ORRTM_CMBGB9
+!USE MODI_ORRTM_CMBGB10
+!USE MODI_ORRTM_CMBGB11
+!USE MODI_ORRTM_CMBGB12
+!USE MODI_ORRTM_CMBGB13
+!USE MODI_ORRTM_CMBGB14
+!USE MODI_ORRTM_CMBGB15
+!USE MODI_ORRTM_CMBGB16
 ! Local
 
 IMPLICIT NONE
@@ -107,22 +107,22 @@ ENDDO
 
 !  Reduce g-points for relevant data in each LW spectral band.
 
-CALL RRTM_CMBGB1
-CALL RRTM_CMBGB2
-CALL RRTM_CMBGB3
-CALL RRTM_CMBGB4
-CALL RRTM_CMBGB5
-CALL RRTM_CMBGB6
-CALL RRTM_CMBGB7
-CALL RRTM_CMBGB8
-CALL RRTM_CMBGB9
-CALL RRTM_CMBGB10
-CALL RRTM_CMBGB11
-CALL RRTM_CMBGB12
-CALL RRTM_CMBGB13
-CALL RRTM_CMBGB14
-CALL RRTM_CMBGB15
-CALL RRTM_CMBGB16
+CALL ORRTM_CMBGB1
+CALL ORRTM_CMBGB2
+CALL ORRTM_CMBGB3
+CALL ORRTM_CMBGB4
+CALL ORRTM_CMBGB5
+CALL ORRTM_CMBGB6
+CALL ORRTM_CMBGB7
+CALL ORRTM_CMBGB8
+CALL ORRTM_CMBGB9
+CALL ORRTM_CMBGB10
+CALL ORRTM_CMBGB11
+CALL ORRTM_CMBGB12
+CALL ORRTM_CMBGB13
+CALL ORRTM_CMBGB14
+CALL ORRTM_CMBGB15
+CALL ORRTM_CMBGB16
 
 RETURN
-END SUBROUTINE RRTM_INIT_140GP
+END SUBROUTINE ORRTM_INIT_140GP
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb1.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb1.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb1.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb1.f90
index fa700083b169b6fd797ee71cd61dfb2753f32125..eca681089344fcc3ea348ce7b2084573b8d6fe3e 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb1.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb1.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB1
+SUBROUTINE ORRTM_KGB1
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 1:  10-250 cm-1 (low - H2O; high - H2O)
@@ -15,7 +15,7 @@ SUBROUTINE RRTM_KGB1
 
 #include "tsmbkind.h"
 
-USE YOERRTO1 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO ,&
+USE OYOERRTO1 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO ,&
            &FRACREFBO  ,FORREFO
 
 !     ------------------------------------------------------------------
@@ -2045,4 +2045,4 @@ SELFREFO( :,16) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB1
+END SUBROUTINE ORRTM_KGB1
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb10.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb10.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb10.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb10.f90
index 28fa4b25bd8289f2cdc02dd2927a13b627228d77..63bf1388d63655d4047938de7deacfb7db88b1bd 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb10.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb10.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:37
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB10
+SUBROUTINE ORRTM_KGB10
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 10:  1390-1480 cm-1 (low - H2O; high - H2O)
@@ -15,7 +15,7 @@ SUBROUTINE RRTM_KGB10
 
 #include "tsmbkind.h"
 
-USE YOERRTO10, ONLY : KAO     ,KBO      ,FRACREFAO   ,FRACREFBO
+USE OYOERRTO10, ONLY : KAO     ,KBO      ,FRACREFAO   ,FRACREFBO
 
 !     ------------------------------------------------------------------
 
@@ -1985,4 +1985,4 @@ KBO( :,59,16) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB10
+END SUBROUTINE ORRTM_KGB10
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb11.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb11.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb11.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb11.f90
index e519f1948572df2d71d2d2973698cc72b09c2341..5352a47790700ca180de0a4f22a3f4c5f9c8faac 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb11.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb11.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:38
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB11
+SUBROUTINE ORRTM_KGB11
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 11:  1480-1800 cm-1 (low - H2O; high - H2O)
@@ -15,7 +15,7 @@ SUBROUTINE RRTM_KGB11
 
 #include "tsmbkind.h"
 
-USE YOERRTO11, ONLY : KAO     ,KBO     ,SELFREFO    ,FRACREFAO ,FRACREFBO
+USE OYOERRTO11, ONLY : KAO     ,KBO     ,SELFREFO    ,FRACREFAO ,FRACREFBO
 
 !     ------------------------------------------------------------------
 
@@ -2040,4 +2040,4 @@ SELFREFO( :,16) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB11
+END SUBROUTINE ORRTM_KGB11
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb12.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb12.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb12.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb12.f90
index 383ef89acdcc91f44a7dc490c3873f4b044279b9..c295cb39cc3c875edc5b5226898e8a34b6f64803 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb12.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb12.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:38
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB12
+SUBROUTINE ORRTM_KGB12
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 12:  1800-2080 cm-1 (low - H2O,CO2; high - nothing)
@@ -15,8 +15,8 @@ SUBROUTINE RRTM_KGB12
 
 #include "tsmbkind.h"
 
-USE YOERRTO12, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA12, ONLY : STRRAT
+USE OYOERRTO12, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA12, ONLY : STRRAT
 
 !     ------------------------------------------------------------------
 
@@ -3268,4 +3268,4 @@ FRACREFAO( : ,9) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB12
+END SUBROUTINE ORRTM_KGB12
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb13.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb13.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb13.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb13.f90
index c005107813cb26bc23c0322f0a493cb3a79af161..9941d3464f0e5df1679652459df84803069f4f39 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb13.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb13.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:38
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB13
+SUBROUTINE ORRTM_KGB13
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 13:  2080-2250 cm-1 (low - H2O,N2O; high - nothing)
@@ -15,8 +15,8 @@ SUBROUTINE RRTM_KGB13
 
 #include "tsmbkind.h"
 
-USE YOERRTO13, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA13, ONLY : STRRAT
+USE OYOERRTO13, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA13, ONLY : STRRAT
 
 !     ------------------------------------------------------------------
 
@@ -3268,4 +3268,4 @@ FRACREFAO( : , 9) = (/&
 
 !     ------------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB13
+END SUBROUTINE ORRTM_KGB13
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb14.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb14.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb14.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb14.f90
index 5901a221b81bce32ecbee9290a7fbf99802dc297..2dc9e74b2b6655286a135bf296e33dbecfb5d9f3 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb14.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb14.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:38
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB14
+SUBROUTINE ORRTM_KGB14
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 14:  2250-2380 cm-1 (low - CO2; high - CO2)
@@ -15,7 +15,7 @@ SUBROUTINE RRTM_KGB14
 
 #include "tsmbkind.h"
 
-USE YOERRTO14, ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
+USE OYOERRTO14, ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
 
 !     ------------------------------------------------------------------
 
@@ -2040,4 +2040,4 @@ SELFREFO( :,16) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB14
+END SUBROUTINE ORRTM_KGB14
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb15.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb15.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb15.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb15.f90
index 9a1f9451e57efea59b7e3fd6a956d64a9bb6b482..01d32c9a010e6a575d73d894209d0c9f4019184f 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb15.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb15.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:38
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB15
+SUBROUTINE ORRTM_KGB15
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 15:  2380-2600 cm-1 (low - N2O,CO2; high - nothing)
@@ -15,8 +15,8 @@ SUBROUTINE RRTM_KGB15
 
 #include "tsmbkind.h"
 
-USE YOERRTO15, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA15, ONLY : STRRAT
+USE OYOERRTO15, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA15, ONLY : STRRAT
 
 !     ------------------------------------------------------------------
 
@@ -3268,4 +3268,4 @@ FRACREFAO( :, 9) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB15
+END SUBROUTINE ORRTM_KGB15
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb16.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb16.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb16.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb16.f90
index 4b2eec748ce62e2db66bcc350665c7c66104dabc..de7dd9041a44c526f0e1662f1b601478b2b528ec 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb16.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb16.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:39
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB16
+SUBROUTINE ORRTM_KGB16
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 16:  2600-3000 cm-1 (low - H2O,CH4; high - nothing)
@@ -15,8 +15,8 @@ SUBROUTINE RRTM_KGB16
 
 #include "tsmbkind.h"
 
-USE YOERRTO16, ONLY : KAO     ,SELFREFO   ,FRACREFAO
-USE YOERRTA16, ONLY : STRRAT
+USE OYOERRTO16, ONLY : KAO     ,SELFREFO   ,FRACREFAO
+USE OYOERRTA16, ONLY : STRRAT
 
 !     ------------------------------------------------------------------
 
@@ -3268,4 +3268,4 @@ FRACREFAO( :, 9) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB16
+END SUBROUTINE ORRTM_KGB16
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb2.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb2.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb2.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb2.f90
index fb4bbbe8365887b5c2da49fd1596770d62670f78..d4d009ab8844131058ebaf9fdd8c90381f0cfcf8 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb2.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb2.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:39
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB2
+SUBROUTINE ORRTM_KGB2
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 2:  250-500 cm-1 (low - H2O; high - H2O)
@@ -15,9 +15,9 @@ SUBROUTINE RRTM_KGB2
 
 #include "tsmbkind.h"
 
-USE YOERRTO2 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO2 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,FORREFO
-USE YOERRTA2 , ONLY : REFPARAM
+USE OYOERRTA2 , ONLY : REFPARAM
 
 !     ------------------------------------------------------------------
 
@@ -2117,4 +2117,4 @@ FRACREFAO( :,13) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB2
+END SUBROUTINE ORRTM_KGB2
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb3.f90
similarity index 83%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb3.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb3.f90
index 1ba74a0613800cda0100029e50068b58f9d97732..cd199fa5574b904c732d4c6156ade51682752bba 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb3.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD1_MODIF_IDRIS 2003/02/19 13:36:32
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB3
+SUBROUTINE ORRTM_KGB3
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 3:  500-630 cm-1 (low - H2O,CO2; high - H2O,CO2)
@@ -28,15 +28,15 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,FORREFO    ,ABSN2OAO   ,ABSN2OBO
-USE YOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
+USE OYOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
            &N2OREF     ,CO2REF     ,STRRAT
 
 !     ------------------------------------------------------------------
-USE MODI_RRTM_KGB3_A
-USE MODI_RRTM_KGB3_B
-USE MODI_RRTM_KGB3_C
+!USE MODI_RRTM_KGB3_A
+!USE MODI_RRTM_KGB3_B
+!USE MODI_RRTM_KGB3_C
 !
 
 IMPLICIT NONE
@@ -49,4 +49,4 @@ CALL RRTM_KGB3_C
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB3
+END SUBROUTINE ORRTM_KGB3
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb4.f90
similarity index 83%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb4.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb4.f90
index 7d3b746c12e17295f884d26750b55fd541ad3a10..d945da2b0fc6f2c165d06c881edfc4158eec7917 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb4.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD1_MODIF_IDRIS 2003/02/19 13:36:33
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB4
+SUBROUTINE ORRTM_KGB4
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 4:  630-700 cm-1 (low - H2O,CO2; high - O3,CO2)
@@ -30,14 +30,14 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
-USE YOERRTA4 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
+USE OYOERRTA4 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
 !
-USE MODI_RRTM_KGB4_A
-USE MODI_RRTM_KGB4_B
-USE MODI_RRTM_KGB4_C
+!USE MODI_RRTM_KGB4_A
+!USE MODI_RRTM_KGB4_B
+!USE MODI_RRTM_KGB4_C
 
 !
 
@@ -50,4 +50,4 @@ CALL RRTM_KGB4_C
 !!!! JDJD Decoupage en 3 parties en raison de pbs de compilation IDRIS
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB4
+END SUBROUTINE ORRTM_KGB4
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb5.f90
similarity index 84%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb5.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb5.f90
index 5812ca12e4f3c0cadbbedbd8a8e7b9292de12f11..202a1b2ae1e927cc04d156fba342bb894ac68705 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb5.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD1_MODIF_IDRIS 2003/02/19 13:36:33
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB5
+SUBROUTINE ORRTM_KGB5
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 5:  700-820 cm-1 (low - H2O,CO2; high - O3,CO2)
@@ -30,14 +30,14 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, CCL4O
-USE YOERRTA5 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTA5 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
-USE MODI_RRTM_KGB5_A
-USE MODI_RRTM_KGB5_B
-USE MODI_RRTM_KGB5_C
+!USE MODI_RRTM_KGB5_A
+!USE MODI_RRTM_KGB5_B
+!USE MODI_RRTM_KGB5_C
 !
 
 IMPLICIT NONE
@@ -49,4 +49,4 @@ CALL RRTM_KGB5_C
 !!!! JDJD Decoupage en 3 parties en raison de pbs de compilation IDRIS
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB5
+END SUBROUTINE ORRTM_KGB5
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb6.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb6.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb6.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb6.f90
index 02383bb0f3d925ddd9efeffec128564fbd45c967..528b09fca7530c407c87e3251f216b8b38232cc3 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb6.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb6.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:40
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB6
+SUBROUTINE ORRTM_KGB6
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 6:  820-980 cm-1 (low - H2O; high - nothing)
@@ -15,7 +15,7 @@ SUBROUTINE RRTM_KGB6
 
 #include "tsmbkind.h"
 
-USE YOERRTO6 , ONLY : KAO     ,SELFREFO   ,FRACREFAO  ,CFC11ADJO ,&
+USE OYOERRTO6 , ONLY : KAO     ,SELFREFO   ,FRACREFAO  ,CFC11ADJO ,&
            &CFC12O   , ABSCO2O 
 
 !     ------------------------------------------------------------------
@@ -536,4 +536,4 @@ SELFREFO( :,16) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB6
+END SUBROUTINE ORRTM_KGB6
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb7.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb7.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb7.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb7.f90
index f1f697ebc757f9f9576b992d269dd4d56a8854bc..ed0743fbc4edece3facdd2865f08114803fc2392 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb7.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb7.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:41
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB7
+SUBROUTINE ORRTM_KGB7
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 7:  980-1080 cm-1 (low - H2O,O3; high - O3)
@@ -15,9 +15,9 @@ SUBROUTINE RRTM_KGB7
 
 #include "tsmbkind.h"
 
-USE YOERRTO7 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO7 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,ABSCO2O
-USE YOERRTA7 , ONLY : STRRAT
+USE OYOERRTA7 , ONLY : STRRAT
 
 !     ------------------------------------------------------------------
 
@@ -4797,4 +4797,4 @@ FRACREFAO( :, 9) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB7
+END SUBROUTINE ORRTM_KGB7
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb8.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb8.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb8.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb8.f90
index 17c4ffd9aff246166fc6520224d01ae6cf10cc95..2f837875580ccb977096bfe80e00c4b66625519a 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb8.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb8.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:41
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB8
+SUBROUTINE ORRTM_KGB8
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 8:  1080-1180 cm-1 (low (i.e.>~300mb) - H2O; high - O3)
@@ -15,10 +15,10 @@ SUBROUTINE RRTM_KGB8
 
 #include "tsmbkind.h"
 
-USE YOERRTO8 , ONLY : KAO     ,KBO       ,SELFREFO ,FRACREFAO ,&
+USE OYOERRTO8 , ONLY : KAO     ,KBO       ,SELFREFO ,FRACREFAO ,&
            &FRACREFBO, CFC12O  ,CFC22ADJO ,ABSCO2AO ,ABSCO2BO  ,&
            &ABSN2OAO , ABSN2OBO
-USE YOERRTA8 , ONLY : H2OREF  ,N2OREF    ,O3REF
+USE OYOERRTA8 , ONLY : H2OREF  ,N2OREF    ,O3REF
 
 !     ------------------------------------------------------------------
 
@@ -2130,4 +2130,4 @@ SELFREFO( :,16) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB8
+END SUBROUTINE ORRTM_KGB8
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb9.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb9.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_kgb9.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_kgb9.f90
index 31765480d11e9fe7334c4a29971f35a869ba8437..5a96ccaf0ea8932ff3941344e69c789b4c1d603d 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb9.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_kgb9.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:41
 !-----------------------------------------------------------------
 !OCL SCALAR
-SUBROUTINE RRTM_KGB9
+SUBROUTINE ORRTM_KGB9
 
 !     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
 !     BAND 9:  1180-1390 cm-1 (low - H2O,CH4; high - CH4)
@@ -15,9 +15,9 @@ SUBROUTINE RRTM_KGB9
 
 #include "tsmbkind.h"
 
-USE YOERRTO9 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO9 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, ABSN2OO
-USE YOERRTA9 , ONLY : N2OREF  ,H2OREF  ,CH4REF     ,ETAREF     ,STRRAT
+USE OYOERRTA9 , ONLY : N2OREF  ,H2OREF  ,CH4REF     ,ETAREF     ,STRRAT
 
 !     ------------------------------------------------------------------
 
@@ -4830,4 +4830,4 @@ FRACREFAO( :, 9) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE RRTM_KGB9
+END SUBROUTINE ORRTM_KGB9
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_setcoef_140gp.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_setcoef_140gp.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_setcoef_140gp.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_setcoef_140gp.f90
index ed0334dd1d0758e230aa42c9793170155a24694f..dccad873858f7a22065e04c98e3860f7c7a7e17b 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_setcoef_140gp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_setcoef_140gp.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:41
 !-----------------------------------------------------------------
-SUBROUTINE RRTM_SETCOEF_140GP (KLEV,COLDRY,WKL &
+SUBROUTINE ORRTM_SETCOEF_140GP (KLEV,COLDRY,WKL &
  &, FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1 &
  &, COLH2O,COLCO2,COLO3,COLN2O,COLCH4,COLO2,CO2MULT &
  &, LAYTROP,LAYSWTCH,LAYLOW,PAVEL,TAVEL,SELFFAC,SELFFRAC,INDSELF)
@@ -18,8 +18,8 @@ SUBROUTINE RRTM_SETCOEF_140GP (KLEV,COLDRY,WKL &
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY     ,JPBAND    ,JPGPT   ,JPINPX
-USE YOERRTRF , ONLY : PREF      ,PREFLOG   ,TREF
+USE OPARRRTM  , ONLY : JPLAY     ,JPBAND    ,JPGPT   ,JPINPX
+USE OYOERRTRF , ONLY : PREF      ,PREFLOG   ,TREF
 
 IMPLICIT NONE
 
@@ -196,4 +196,4 @@ ENDDO
 IF (LAYLOW == 0) LAYLOW=1
 
 RETURN
-END SUBROUTINE RRTM_SETCOEF_140GP
+END SUBROUTINE ORRTM_SETCOEF_140GP
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol1.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol1.f90
similarity index 98%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol1.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol1.f90
index 6d66ef4a90f1ba80d50958e13489610b12e22fcc..2994e8ff1bf60233eb96238ae48aa18cd7eccf37 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol1.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol1.f90
@@ -129,7 +129,7 @@
 !******************************************************************************
 
 
-SUBROUTINE RRTM_TAUMOL1 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL1 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,&
   &COLH2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -146,9 +146,9 @@ SUBROUTINE RRTM_TAUMOL1 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG1
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA1 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG1
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA1 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
             &FORREF   ,KA     ,KB     ,SELFREF 
 
 !#include "yoeratm.h"
@@ -248,4 +248,4 @@ DO IG = 1, NG1
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL1
+END SUBROUTINE ORRTM_TAUMOL1
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol10.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol10.f90
similarity index 90%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol10.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol10.f90
index 28e23d9ceaa73378b408e7ed5f4a543cc9f53d78..9f3484f64612b331081a7a4e50e1a4d4d4b3eda3 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol10.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol10.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:41
 !-----------------------------------------------------------------
 !*******************************************************************************
-SUBROUTINE RRTM_TAUMOL10 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL10 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,LAYTROP,PFRAC)
 
@@ -19,9 +19,9 @@ SUBROUTINE RRTM_TAUMOL10 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG10   ,NGS9
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA10, ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB, KA      , KB
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG10   ,NGS9
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA10, ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB, KA      , KB
 
 !  Input
 !#include "yoeratm.h"
@@ -106,4 +106,4 @@ DO IG = 1, NG10
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL10
+END SUBROUTINE ORRTM_TAUMOL10
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol11.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol11.f90
similarity index 92%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol11.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol11.f90
index 90e0374aee929a56fa6f7575facd28c096907fd2..6f5b423ce8a2bdddf6b74ecc76c1b3087fcba9ef 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol11.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol11.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:41
 !-----------------------------------------------------------------
 !******************************************************************************
-SUBROUTINE RRTM_TAUMOL11 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL11 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -19,9 +19,9 @@ SUBROUTINE RRTM_TAUMOL11 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG11  ,NGS10
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA11, ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG11  ,NGS10
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA11, ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
             &KA      , KB     ,SELFREF
 
 !  Input
@@ -117,4 +117,4 @@ DO IG = 1, NG11
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL11
+END SUBROUTINE ORRTM_TAUMOL11
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol12.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol12.f90
similarity index 94%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol12.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol12.f90
index f5852888f526b61af1bdc7e5085efd852bc0ca73..7edfd30ea38ef4d0c64a1d1cb5f10c79c444291a 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol12.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol12.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:41
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL12 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL12 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -19,9 +19,9 @@ SUBROUTINE RRTM_TAUMOL12 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND  ,JPGPT  ,JPXSEC ,NG12 ,NGS11
-USE YOERRTWN , ONLY : NG     ,NSPA    ,NSPB
-USE YOERRTA12, ONLY : ABSA   ,FRACREFA,KA     ,SELFREF,STRRAT
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND  ,JPGPT  ,JPXSEC ,NG12 ,NGS11
+USE OYOERRTWN , ONLY : NG     ,NSPA    ,NSPB
+USE OYOERRTA12, ONLY : ABSA   ,FRACREFA,KA     ,SELFREF,STRRAT
 
 !  Input
 !#include "yoeratm.h"
@@ -157,4 +157,4 @@ DO IG = 1, NG12
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL12
+END SUBROUTINE ORRTM_TAUMOL12
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol13.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol13.f90
similarity index 94%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol13.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol13.f90
index 23c2cbc77543cc4f8c66f12f9eb87cb3f42ee711..00688716f4253ebfe7cdd89d9e68e707fcd8541f 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol13.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol13.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL13 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL13 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLN2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL13 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG13  ,NGS12
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA13, ONLY : ABSA   ,FRACREFA,KA    ,SELFREF,STRRAT
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG13  ,NGS12
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA13, ONLY : ABSA   ,FRACREFA,KA    ,SELFREF,STRRAT
 
 !  Input
 !#include "yoeratm.h"
@@ -156,4 +156,4 @@ DO IG = 1, NG13
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL13
+END SUBROUTINE ORRTM_TAUMOL13
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol14.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol14.f90
similarity index 93%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol14.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol14.f90
index 2d99637fc86783b32b24f0ef2c15649091e893e1..8aff66045c459e940865efdcb8b2325d65473378 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol14.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol14.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !******************************************************************************
-SUBROUTINE RRTM_TAUMOL14 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL14 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLCO2,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL14 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG14  ,NGS13
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA14, ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG14  ,NGS13
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA14, ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
               &KA    , KB     ,SELFREF
 
 IMPLICIT NONE
@@ -130,4 +130,4 @@ DO LAY = LAYTROP+1, KLEV
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL14
+END SUBROUTINE ORRTM_TAUMOL14
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol15.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol15.f90
similarity index 95%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol15.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol15.f90
index d30c3f3f4e8301df8378deff576be05699f4f917..a496d73ec155182da3483d369d29828ca75e31bd 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol15.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol15.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL15 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL15 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLN2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL15 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG15  ,NGS14
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA15, ONLY : ABSA   ,FRACREFA,KA    ,SELFREF,STRRAT
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG15  ,NGS14
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA15, ONLY : ABSA   ,FRACREFA,KA    ,SELFREF,STRRAT
 
 
 IMPLICIT NONE
@@ -172,4 +172,4 @@ DO LAY = LAYTROP+1, KLEV
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL15
+END SUBROUTINE ORRTM_TAUMOL15
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol16.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol16.f90
similarity index 95%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol16.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol16.f90
index 4315bcda6a0e7cc30b1a4e45c603801edba76e75..6ec879a204ccbae6ab77b1b60c0307e3d68364a4 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol16.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol16.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL16 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL16 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCH4,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL16 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG16  ,NGS15
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA16, ONLY : ABSA   ,FRACREFA,KA    ,SELFREF,STRRAT
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG16  ,NGS15
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA16, ONLY : ABSA   ,FRACREFA,KA    ,SELFREF,STRRAT
 
 
 IMPLICIT NONE
@@ -171,4 +171,4 @@ DO LAY = LAYTROP+1, KLEV
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL16
+END SUBROUTINE ORRTM_TAUMOL16
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol2.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol2.f90
similarity index 94%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol2.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol2.f90
index f7b317914381290a741cd50ffe505f2f3d00c6a7..0ad531c78f9787e329020af8f74c6abcaa3348aa 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol2.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol2.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL2 (KLEV,TAU,COLDRY,&
+SUBROUTINE ORRTM_TAUMOL2 (KLEV,TAU,COLDRY,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,&
   &COLH2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -20,11 +20,11 @@ SUBROUTINE RRTM_TAUMOL2 (KLEV,TAU,COLDRY,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG2   ,NGS1
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA2 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG2   ,NGS1
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA2 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
             &FORREF   ,KA     ,KB     ,SELFREF , REFPARAM
-USE YOERRTBG2, ONLY : CORR1  ,CORR2
+USE OYOERRTBG2, ONLY : CORR1  ,CORR2
 
 !  Input
 !#include "yoeratm.h"
@@ -182,4 +182,4 @@ DO IG = 1, NG2
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL2
+END SUBROUTINE ORRTM_TAUMOL2
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol3.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol3.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol3.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol3.f90
index b4afeb6776988447258a19486b7c0a4782744f85..6b9e2f06ae180c97817ca3a36c19697c54cbda7e 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol3.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol3.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL3 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL3 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLN2O,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL3 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG3   ,NGS2
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA3 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG3   ,NGS2
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA3 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
             &FORREF   ,KA     ,KB     ,SELFREF , ABSN2OA ,&
             &ABSN2OB  ,ETAREF ,H2OREF ,N2OREF  , CO2REF  ,&
             &STRRAT
@@ -252,4 +252,4 @@ DO LAY = LAYTROP+1, KLEV
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL3
+END SUBROUTINE ORRTM_TAUMOL3
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol4.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol4.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol4.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol4.f90
index ad38b4fa623cf6df772f56ab346be0fe3237df06..7e21a4201ccb32e884d00d48e52a90a2582929c8 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol4.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol4.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL4 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL4 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2,COLO3,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL4 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG4   ,NGS3
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA4 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG4   ,NGS3
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA4 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
             &KA       ,KB     ,SELFREF,STRRAT1 , STRRAT2
 
 !  Input
@@ -211,4 +211,4 @@ DO LAY = LAYTROP+1, KLEV
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL4
+END SUBROUTINE ORRTM_TAUMOL4
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol5.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol5.f90
similarity index 95%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol5.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol5.f90
index ed2dedadb593f44611a23c802365107eb38e7435..88effcd87fafa3aed660b81cdc8f7c8c0e9d00a1 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol5.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol5.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL5 (KLEV,TAU,WX,&
+SUBROUTINE ORRTM_TAUMOL5 (KLEV,TAU,WX,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLCO2, COLO3,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL5 (KLEV,TAU,WX,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG5   ,NGS4
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA5 , ONLY : ABSA   ,ABSB   ,CCL4   , FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG5   ,NGS4
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA5 , ONLY : ABSA   ,ABSB   ,CCL4   , FRACREFA, FRACREFB,&
             &KA       ,KB     ,SELFREF,STRRAT1, STRRAT2
 
 !  Input
@@ -206,4 +206,4 @@ DO LAY = LAYTROP+1, KLEV
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL5
+END SUBROUTINE ORRTM_TAUMOL5
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol6.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol6.f90
similarity index 92%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol6.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol6.f90
index db168873de5f0a3f60886c168eaad7fde3848658..59b587b1561ccb83b0433932d911fff79c07feee 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol6.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol6.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL6 (KLEV,TAU,WX,&
+SUBROUTINE ORRTM_TAUMOL6 (KLEV,TAU,WX,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,CO2MULT,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -19,9 +19,9 @@ SUBROUTINE RRTM_TAUMOL6 (KLEV,TAU,WX,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG6   ,NGS5
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA6 , ONLY : ABSA   ,ABSCO2 ,CFC11ADJ , CFC12  ,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG6   ,NGS5
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA6 , ONLY : ABSA   ,ABSCO2 ,CFC11ADJ , CFC12  ,&
             &FRACREFA, KA     ,SELFREF
 
 !  Input
@@ -116,4 +116,4 @@ DO IG = 1, NG6
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL6
+END SUBROUTINE ORRTM_TAUMOL6
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol7.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol7.f90
similarity index 94%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol7.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol7.f90
index 39a320ba6dbf58670cc665ceec58a512486cf4cd..5a02fcb4a40d211d09a5f387347ca51357a4dfcf 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol7.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol7.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL7 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL7 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLO3,CO2MULT,LAYTROP,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -18,9 +18,9 @@ SUBROUTINE RRTM_TAUMOL7 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG7   ,NGS6
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA7 , ONLY : ABSA   ,ABSB   ,ABSCO2 ,FRACREFA ,FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG7   ,NGS6
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA7 , ONLY : ABSA   ,ABSB   ,ABSCO2 ,FRACREFA ,FRACREFB,&
             &KA       ,KB     ,SELFREF,STRRAT
 
 !  Input
@@ -170,4 +170,4 @@ DO IG = 1, NG7
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL7
+END SUBROUTINE ORRTM_TAUMOL7
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol8.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol8.f90
similarity index 94%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol8.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol8.f90
index a0009819dc1f0bd7dae6c8c88be44f7ed74a3d62..82baf8b16bd4b875707509f375af1bd4399284e2 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol8.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol8.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !*******************************************************************************
-SUBROUTINE RRTM_TAUMOL8 (KLEV,TAU,WX,&
+SUBROUTINE ORRTM_TAUMOL8 (KLEV,TAU,WX,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
   &COLH2O,COLO3,COLN2O,CO2MULT,LAYSWTCH,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -19,9 +19,9 @@ SUBROUTINE RRTM_TAUMOL8 (KLEV,TAU,WX,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG8   ,NGS7
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA8 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG8   ,NGS7
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA8 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
             &KA      , KB     ,SELFREF,ABSCO2A , ABSCO2B ,&
             &ABSN2OA , ABSN2OB,CFC12  ,CFC22ADJ, H2OREF  ,&
             &N2OREF  , O3REF
@@ -151,4 +151,4 @@ DO IG = 1, NG8
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL8
+END SUBROUTINE ORRTM_TAUMOL8
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol9.f90 b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol9.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/rrtm_taumol9.f90
rename to src/LIB/RAD/ECMWF_RAD/orrtm_taumol9.f90
index 24028d888c0aea3662bf8eb855a46c76e0eff8a8..784aa22323bb4d811d04c20eb4395a19b4d6b405 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_taumol9.f90
+++ b/src/LIB/RAD/ECMWF_RAD/orrtm_taumol9.f90
@@ -5,7 +5,7 @@
 ! ECMWF_RAD2 2003/02/19 13:36:42
 !-----------------------------------------------------------------
 !----------------------------------------------------------------------------
-SUBROUTINE RRTM_TAUMOL9 (KLEV,TAU,&
+SUBROUTINE ORRTM_TAUMOL9 (KLEV,TAU,&
   &TAUAERL,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,ONEMINUS,&
   &COLH2O,COLN2O,COLCH4,LAYTROP,LAYSWTCH,LAYLOW,SELFFAC,SELFFRAC,INDSELF,PFRAC)
 
@@ -19,9 +19,9 @@ SUBROUTINE RRTM_TAUMOL9 (KLEV,TAU,&
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG9   ,NGS8
-USE YOERRTWN , ONLY : NG     ,NSPA   ,NSPB
-USE YOERRTA9 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
+USE OPARRRTM  , ONLY : JPLAY  ,JPBAND ,JPGPT  ,JPXSEC ,NG9   ,NGS8
+USE OYOERRTWN , ONLY : NG     ,NSPA   ,NSPB
+USE OYOERRTA9 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,&
             &KA      , KB     ,SELFREF,ABSN2O  , CH4REF  ,&
             &ETAREF  , H2OREF ,N2OREF ,STRRAT
 
@@ -212,4 +212,4 @@ DO IG = 1, NG9
 ENDDO
 
 RETURN
-END SUBROUTINE RRTM_TAUMOL9
+END SUBROUTINE ORRTM_TAUMOL9
diff --git a/src/LIB/RAD/ECMWF_RAD/surdi.f90 b/src/LIB/RAD/ECMWF_RAD/osurdi.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/surdi.f90
rename to src/LIB/RAD/ECMWF_RAD/osurdi.f90
index c670fab9837f7e093cd9c4b7f0ab91bf9720df03..906fdd6292536e8faadeee96fdfb739753d59a3e 100644
--- a/src/LIB/RAD/ECMWF_RAD/surdi.f90
+++ b/src/LIB/RAD/ECMWF_RAD/osurdi.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:46
 !-----------------------------------------------------------------
-SUBROUTINE SURDI
+SUBROUTINE OSURDI
 
 
 !**** *SURDI*   - INITIALIZE COMMON YOERDI CONTROLLING RADINT
@@ -51,7 +51,7 @@ SUBROUTINE SURDI
 
 #include "tsmbkind.h"
 
-USE YOERDI   , ONLY : RRAE     ,RALBSEAD ,&
+USE OYOERDI   , ONLY : RRAE     ,RALBSEAD ,&
             &RALBICEVS_AR,RALBICENI_AR,RALBICEVS_AN,RALBICENI_AN,&
             &RALBSFO  ,REMISD   ,REMISL   ,REMISN   ,REMISS   ,&
             &RCARDI   ,RCH4     ,RN2O     ,RO3      ,RCFC11   ,&
@@ -131,4 +131,4 @@ REPALB=1.E-12_JPRB
 !     -----------------------------------------------------------------
 
 RETURN
-END SUBROUTINE SURDI
+END SUBROUTINE OSURDI
diff --git a/src/LIB/RAD/ECMWF_RAD/surrtab.f90 b/src/LIB/RAD/ECMWF_RAD/osurrtab.f90
similarity index 92%
rename from src/LIB/RAD/ECMWF_RAD/surrtab.f90
rename to src/LIB/RAD/ECMWF_RAD/osurrtab.f90
index d08324fcdb17b611bc4b948022de7997b35c1d69..ec9ce07bb5aec4e503593d504f010d4d0de4b302 100644
--- a/src/LIB/RAD/ECMWF_RAD/surrtab.f90
+++ b/src/LIB/RAD/ECMWF_RAD/osurrtab.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:46
 !-----------------------------------------------------------------
-SUBROUTINE SURRTAB
+SUBROUTINE OSURRTAB
 
 !     -----------------------------------------------------------------
 !        * E.C.M.W.F. PHYSICS PACKAGE ** AER'S RRTM LW RADIATION **
@@ -15,7 +15,7 @@ SUBROUTINE SURRTAB
 
 #include "tsmbkind.h"
 
-USE YOERRTAB , ONLY : TRANS, BPADE
+USE OYOERRTAB , ONLY : TRANS, BPADE
 
 IMPLICIT NONE
 
@@ -38,4 +38,4 @@ ENDDO
 !     -----------------------------------------------------------------
 
 RETURN
-END SUBROUTINE SURRTAB
+END SUBROUTINE OSURRTAB
diff --git a/src/LIB/RAD/ECMWF_RAD/surrtftr.f90 b/src/LIB/RAD/ECMWF_RAD/osurrtftr.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/surrtftr.f90
rename to src/LIB/RAD/ECMWF_RAD/osurrtftr.f90
index 9ecb06e731d69e2e84b1bd5cb66d2fc548fd32b9..c95eef85e430ee186fa258141e48248619bdfcf2 100644
--- a/src/LIB/RAD/ECMWF_RAD/surrtftr.f90
+++ b/src/LIB/RAD/ECMWF_RAD/osurrtftr.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:46
 !-----------------------------------------------------------------
-SUBROUTINE SURRTFTR
+SUBROUTINE OSURRTFTR
 
 !     Adapted from Eli J. Mlawer, Atmospheric & Environmental Research.
 !     by JJMorcrette, ECMWF
@@ -12,7 +12,7 @@ SUBROUTINE SURRTFTR
 
 #include "tsmbkind.h"
 
-USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
+USE OYOERRTFTR, ONLY : NGC      ,NGS      ,NGN      ,NGB       ,NGM     , WT
 
 !     ------------------------------------------------------------------
 
@@ -85,4 +85,4 @@ WT( :) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE SURRTFTR
+END SUBROUTINE OSURRTFTR
diff --git a/src/LIB/RAD/ECMWF_RAD/surrtpk.f90 b/src/LIB/RAD/ECMWF_RAD/osurrtpk.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/surrtpk.f90
rename to src/LIB/RAD/ECMWF_RAD/osurrtpk.f90
index 438229dc4e149bf9dbe1976639e5fcde8aa255c0..a0cf66848b2613e16f01bf01563a45fae0359a5f 100644
--- a/src/LIB/RAD/ECMWF_RAD/surrtpk.f90
+++ b/src/LIB/RAD/ECMWF_RAD/osurrtpk.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:46
 !-----------------------------------------------------------------
-SUBROUTINE SURRTPK
+SUBROUTINE OSURRTPK
 
 !     Adapted from Eli J. Mlawer, Atmospheric & Environmental Research.
 !     by JJMorcrette, ECMWF
@@ -12,7 +12,7 @@ SUBROUTINE SURRTPK
 
 #include "tsmbkind.h"
 
-USE YOERRTWN , ONLY : NG        ,NSPA      ,NSPB      ,WAVENUM1  ,&
+USE OYOERRTWN , ONLY : NG        ,NSPA      ,NSPB      ,WAVENUM1  ,&
            &WAVENUM2  ,DELWAVE   ,TOTPLNK   ,TOTPLK16
 
 !     ------------------------------------------------------------------
@@ -747,4 +747,4 @@ TOTPLK16( :) = (/&
 &1.99016E-07_JPRB/)
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE SURRTPK
+END SUBROUTINE OSURRTPK
diff --git a/src/LIB/RAD/ECMWF_RAD/surrtrf.f90 b/src/LIB/RAD/ECMWF_RAD/osurrtrf.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/surrtrf.f90
rename to src/LIB/RAD/ECMWF_RAD/osurrtrf.f90
index 0ca2bf9b54e585d291b75c16d7cd7b33d7b45a46..3c91b63acdd24878b8780ca75530e86a1727cd36 100644
--- a/src/LIB/RAD/ECMWF_RAD/surrtrf.f90
+++ b/src/LIB/RAD/ECMWF_RAD/osurrtrf.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:46
 !-----------------------------------------------------------------
-SUBROUTINE SURRTRF
+SUBROUTINE OSURRTRF
 
 !     Adapted from Eli J. Mlawer, Atmospheric & Environmental Research.
 !     by JJMorcrette, ECMWF
@@ -12,7 +12,7 @@ SUBROUTINE SURRTRF
 
 #include "tsmbkind.h"
 
-USE YOERRTRF , ONLY : PREF      ,PREFLOG   ,TREF
+USE OYOERRTRF , ONLY : PREF      ,PREFLOG   ,TREF
 
 !     ------------------------------------------------------------------
 
@@ -67,4 +67,4 @@ TREF( :) = (/&
 
 !     -----------------------------------------------------------------
 RETURN
-END SUBROUTINE SURRTRF
+END SUBROUTINE OSURRTRF
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerad.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerad.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/yoerad.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerad.f90
index e843910ec5f1c782a31c595d2ea0b5323cc82ab6..174b0ef530891b152383a1c50d52ed6661fa4693 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerad.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerad.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2_OLD2NEW 2003/02/19 13:36:51
 !-----------------------------------------------------------------
-MODULE YOERAD
+MODULE OYOERAD
 
 
 #include "tsmbkind.h"
@@ -123,4 +123,4 @@ REAL_B :: RAOVLP, RBOVLP
 ! RAOVLP : REAL    : COEFFICIENTS FOR ALPHA1 FACTOR IN HOGAN & 
 ! RBOVLP : REAL    : ILLINGWORTH's PARAMETRIZATION
 !     ------------------------------------------------------------------
-END MODULE YOERAD
+END MODULE OYOERAD
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerdi.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerdi.f90
similarity index 98%
rename from src/LIB/RAD/ECMWF_RAD/yoerdi.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerdi.f90
index 628a1c714ab69df52bb7421a48e4ff37b25cb7c4..016661cb532b3f5273a0c1f4dd5773fa6e3fd123 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerdi.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerdi.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERDI
+MODULE OYOERDI
 
 
 #include "tsmbkind.h"
@@ -67,4 +67,4 @@ REAL_B :: REPH2O
 ! REPH2O : SECURITY TO AVOID WATER VAPOUR CONTENT IN A LAYER
 !          TO BE MORE THAN THE RESPECTIVE VALUE AT SATURATION.
 !     -----------------------------------------------------------------
-END MODULE YOERDI
+END MODULE OYOERDI
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta1.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta1.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta1.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta1.f90
index a7b46eef9be7e1a1ba3a755d58f0c4b54b6f454a..9f0c1b4a7e583afbe7ab885f5a509005a4ec3710 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta1.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta1.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA1
+MODULE OYOERRTA1
 
 
 #include "tsmbkind.h"
@@ -43,4 +43,4 @@ EQUIVALENCE (KA(1,1,1),ABSA(1,1)), (KB(1,13,1),ABSB(1,1))
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA1
+END MODULE OYOERRTA1
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta10.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta10.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta10.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta10.f90
index e951dd9088a628a8e4387a50ed68f5ede736edb9..2942c12d78b444ee80b348466bde9256dcfa9cc9 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta10.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta10.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA10
+MODULE OYOERRTA10
 
 
 #include "tsmbkind.h"
@@ -42,4 +42,4 @@ EQUIVALENCE (KA(1,1,1),ABSA(1,1)),(KB(1,13,1),ABSB(1,1))
 ! KA      : REAL     
 ! KB      : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA10
+END MODULE OYOERRTA10
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta11.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta11.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta11.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta11.f90
index 8bbf9f5405cdfa1711335890a27a75135faf8ba1..b084e87a5a63dd53259051d492a61d2c4c1a3068 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta11.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta11.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA11
+MODULE OYOERRTA11
 
 
 #include "tsmbkind.h"
@@ -44,4 +44,4 @@ EQUIVALENCE (KA(1,1,1),ABSA(1,1)),(KB(1,13,1),ABSB(1,1))
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA11
+END MODULE OYOERRTA11
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta12.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta12.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta12.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta12.f90
index 69b74baa8a71586031b9db7b117c298a42985a66..5bf1829862bdb1d1233514ad50190647db198380 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta12.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta12.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA12
+MODULE OYOERRTA12
 
 
 #include "tsmbkind.h"
@@ -42,4 +42,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1))
 ! SELFREF : REAL
 ! STRRAT1 : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA12
+END MODULE OYOERRTA12
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta13.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta13.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta13.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta13.f90
index 998833433dbf17614f5a6219d0fb820dc9479231..136c8a8d78095cf8db703d55eecca257133ce9c3 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta13.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta13.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA13
+MODULE OYOERRTA13
 
 
 #include "tsmbkind.h"
@@ -40,4 +40,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1))
 ! SELFREF : REAL
 ! STRRAT1 : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA13
+END MODULE OYOERRTA13
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta14.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta14.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta14.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta14.f90
index 4f025deef469618b68ab877a4f2919d3d6296cc8..753e56e72834aed360b1dc0805a915b4c86d919f 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta14.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta14.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA14
+MODULE OYOERRTA14
 
 
 #include "tsmbkind.h"
@@ -42,6 +42,6 @@ EQUIVALENCE (KA(1,1,1),ABSA(1,1)), (KB(1,13,1),ABSB(1,1))
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA14
+END MODULE OYOERRTA14
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta15.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta15.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta15.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta15.f90
index 5a852ba496be73fd83b54ad10b58717820815db2..fd0ba7a2a1ed036e545f2d2a570c5482cc7152d1 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta15.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta15.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA15
+MODULE OYOERRTA15
 
 
 #include "tsmbkind.h"
@@ -40,4 +40,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1))
 ! SELFREF : REAL 
 ! STRRAT  : REAL    
 !     -----------------------------------------------------------------
-END MODULE YOERRTA15
+END MODULE OYOERRTA15
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta16.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta16.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta16.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta16.f90
index 3b301d6bc472617af1b05ff8428a9481aac370b2..1cd0c61a994c84f6585079954be0e391e1858906 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta16.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta16.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA16
+MODULE OYOERRTA16
 
 
 #include "tsmbkind.h"
@@ -40,4 +40,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1))
 ! SELFREF : REAL     
 ! STRRAT  : REAL
 !     -----------------------------------------------------------------
-END MODULE YOERRTA16
+END MODULE OYOERRTA16
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta2.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta2.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta2.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta2.f90
index 71bcb7e48f769329ecdb4b35aa6c670d24193ba2..9d86226d6536429222e4595e0b182e994978e215 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta2.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta2.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA2
+MODULE OYOERRTA2
 
 
 #include "tsmbkind.h"
@@ -46,6 +46,6 @@ EQUIVALENCE (KA(1,1,1),ABSA(1,1)),(KB(1,13,1),ABSB(1,1))
 ! SELFREF : REAL
 ! FORREF  : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA2
+END MODULE OYOERRTA2
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta3.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta3.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta3.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta3.f90
index 154aedcb1af3e88256773865aee4bb33e363e278..3c75ed742bcd72e8d367a5442d29d3f0842c709f 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta3.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta3.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA3
+MODULE OYOERRTA3
 
 
 #include "tsmbkind.h"
@@ -59,4 +59,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1)),(KB(1,1,13,1),ABSB(1,1))
 ! SELFREF : REAL     
 ! STRRAT  : REAL
 !     -----------------------------------------------------------------
-END MODULE YOERRTA3
+END MODULE OYOERRTA3
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta4.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta4.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta4.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta4.f90
index f2e3b1b51170f6d0c993aaf998de6848c6009c13..3b694a09ecc871bdc512155cc966228a8497fa5e 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta4.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta4.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA4
+MODULE OYOERRTA4
 
 
 #include "tsmbkind.h"
@@ -44,4 +44,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1)),(KB(1,1,13,1),ABSB(1,1))
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA4
+END MODULE OYOERRTA4
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta5.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta5.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta5.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta5.f90
index c4b0088bf9694c0b5a7c7ec30ea3bfcd43c74e69..b2c96b974d436ccec89f6867322832956ed6d16e 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta5.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta5.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA5
+MODULE OYOERRTA5
 
 
 #include "tsmbkind.h"
@@ -50,4 +50,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1)),(KB(1,1,13,1),ABSB(1,1))
 ! STRRAT1 : REAL
 ! STRRAT2 : REAL    
 !     -----------------------------------------------------------------
-END MODULE YOERRTA5
+END MODULE OYOERRTA5
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta6.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta6.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta6.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta6.f90
index 9dc53e5dc1b56d90cc53d060b6fad18eb45e5f4b..c8930cc56dae08689847716c5516260c708381b2 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta6.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta6.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA6
+MODULE OYOERRTA6
 
 
 #include "tsmbkind.h"
@@ -47,4 +47,4 @@ EQUIVALENCE (KA(1,1,1),ABSA(1,1))
 ! KA      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA6
+END MODULE OYOERRTA6
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta7.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta7.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta7.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta7.f90
index 81e71a60f1c2d21d968124d6113fdeae26736a59..b0f442c1d8a28e291b8e3dc47847c71681c4348d 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta7.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta7.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA7
+MODULE OYOERRTA7
 
 
 #include "tsmbkind.h"
@@ -49,4 +49,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1)),(KB(1,13,1),ABSB(1,1))
 ! SELFREF : REAL  
 ! STRRAT  : REAL   
 !     -----------------------------------------------------------------
-END MODULE YOERRTA7
+END MODULE OYOERRTA7
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta8.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta8.f90
similarity index 98%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta8.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta8.f90
index 095e470dfdffaf725ae9c6e396f05069f5228997..6c7e46c67b9aa6175dad4c72afb89866b2f185b7 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta8.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta8.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA8
+MODULE OYOERRTA8
 
 
 #include "tsmbkind.h"
@@ -62,4 +62,4 @@ EQUIVALENCE (KA(1,1,1),ABSA(1,1)),(KB(1,7,1),ABSB(1,1))
 ! O3REF   : REAL    
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTA8
+END MODULE OYOERRTA8
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrta9.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrta9.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrta9.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrta9.f90
index d312e7a36b9645d2ddf108de34ba563bf53a61e6..fe0fd95da9943fc86f99c9f8cdd8c772ae270a9e 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrta9.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrta9.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTA9
+MODULE OYOERRTA9
 
 
 #include "tsmbkind.h"
@@ -58,4 +58,4 @@ EQUIVALENCE (KA(1,1,1,1),ABSA(1,1)),(KB(1,13,1),ABSB(1,1))
 ! SELFREF : REAL     
 ! STRRAT  : REAL
 !     -----------------------------------------------------------------
-END MODULE YOERRTA9
+END MODULE OYOERRTA9
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrtab.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrtab.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrtab.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrtab.f90
index 710f6073b0e59e8ddd3402cc180355f9f65e4251..0419cefaf32a5517caa4ff1e2ab3eec3e0eddf47 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrtab.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrtab.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:48
 !-----------------------------------------------------------------
-MODULE YOERRTAB
+MODULE OYOERRTAB
 
 
 #include "tsmbkind.h"
@@ -30,6 +30,6 @@ REAL_B :: BPADE
 ! TRANS  :  REAL    
 ! BPADE  :  REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTAB
+END MODULE OYOERRTAB
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrtbg2.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrtbg2.f90
similarity index 94%
rename from src/LIB/RAD/ECMWF_RAD/yoerrtbg2.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrtbg2.f90
index a71d71e15d963a65e79cfebfb3b181ccb02b7f68..23d336ac63a8addaae3b638e6d8f5f73de5bed23 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrtbg2.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrtbg2.f90
@@ -4,11 +4,11 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTBG2
+MODULE OYOERRTBG2
 
 #include "tsmbkind.h"
 
-USE PARRRTM
+USE OPARRRTM
 
 
 IMPLICIT NONE
@@ -32,6 +32,6 @@ REAL_B :: CORR2(0:200)
 ! CORR1  :  REAL   : 
 ! CORR2  :  REAL   :
 !    -------------------------------------------------------------------
-END MODULE YOERRTBG2
+END MODULE OYOERRTBG2
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrtftr.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrtftr.f90
similarity index 95%
rename from src/LIB/RAD/ECMWF_RAD/yoerrtftr.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrtftr.f90
index 3aa34e9639565e942a2a35eaa2cbdda1ad0a6024..de02311aacc95946ec26ac42cda97f8ba8548b71 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrtftr.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrtftr.f90
@@ -4,11 +4,11 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTFTR
+MODULE OYOERRTFTR
 
 #include "tsmbkind.h"
 
-USE PARRRTM
+USE OPARRRTM
 
 
 IMPLICIT NONE
@@ -41,6 +41,6 @@ REAL_B ::    WT(JPG)
 !  NGM   : INTEGER :
 !  WT    : REAL    :
 !    -------------------------------------------------------------------
-END MODULE YOERRTFTR
+END MODULE OYOERRTFTR
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto1.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto1.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto1.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto1.f90
index f84b9d98802d67d0980e6b2bc65947c70f47b145..5593d54c3fccec8c49221a90898a659965e9f77a 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto1.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto1.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO1
+MODULE OYOERRTO1
 
 
 #include "tsmbkind.h"
@@ -39,4 +39,4 @@ REAL_B :: SELFREFO(10,NO1), FORREFO(NO1)
 ! KBO     : REAL     
 ! SELFREFO: REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO1
+END MODULE OYOERRTO1
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto10.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto10.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto10.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto10.f90
index 9f761294c6790fc9d3d83e994247efae1dc49cb4..ed12f57d968b73c6bf4b1d0de0795ca85068aebc 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto10.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto10.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO10
+MODULE OYOERRTO10
 
 
 #include "tsmbkind.h"
@@ -38,4 +38,4 @@ REAL_B :: KBO(5,13:59,NO10)
 ! KA      : REAL     
 ! KB      : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO10
+END MODULE OYOERRTO10
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto11.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto11.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto11.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto11.f90
index 1498871f2e1f02dfca08c0573ad2718bf00a6374..cbc83b515948c837342bf2871f144ba1173ccb02 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto11.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto11.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO11
+MODULE OYOERRTO11
 
 
 #include "tsmbkind.h"
@@ -40,4 +40,4 @@ REAL_B :: SELFREFO(10,NO11)
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO11
+END MODULE OYOERRTO11
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto12.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto12.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto12.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto12.f90
index cfe2a7b970d7e760a14f849b7950adc13226ecef..6667348d8962bef7bb13dd3a460f102906de455e 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto12.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto12.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO12
+MODULE OYOERRTO12
 
 
 #include "tsmbkind.h"
@@ -35,4 +35,4 @@ REAL_B :: SELFREFO(10,NO12)
 ! KA      : REAL     
 ! SELFREF : REAL
 !     -----------------------------------------------------------------
-END MODULE YOERRTO12
+END MODULE OYOERRTO12
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto13.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto13.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto13.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto13.f90
index 041ee6c622f00159e3367a6e8b6758b9b3f9f38a..bb0f8e7831f9d2c84fb3d3031e19d8db8a7655c1 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto13.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto13.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO13
+MODULE OYOERRTO13
 
 
 #include "tsmbkind.h"
@@ -36,4 +36,4 @@ REAL_B :: SELFREFO(10,NO13)
 ! KA      : REAL     
 ! SELFREF : REAL
 !     -----------------------------------------------------------------
-END MODULE YOERRTO13
+END MODULE OYOERRTO13
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto14.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto14.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto14.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto14.f90
index 5afc400ede2d4a9b56ebbed2a1ff3e597a88cd66..8652bb68987c9578d47b8da78116bca06f24df5e 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto14.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto14.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO14
+MODULE OYOERRTO14
 
 
 #include "tsmbkind.h"
@@ -40,4 +40,4 @@ REAL_B :: SELFREFO(10,NO14)
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO14
+END MODULE OYOERRTO14
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto15.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto15.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto15.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto15.f90
index 926d7e6d501c856456a3394df2caf214df3781e1..5ac99793fdd550e21001d6d7df9692889a32cf06 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto15.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto15.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO15
+MODULE OYOERRTO15
 
 
 #include "tsmbkind.h"
@@ -36,4 +36,4 @@ REAL_B :: SELFREFO(10,NO15)
 ! KA      : REAL     
 ! SELFREF : REAL 
 !     -----------------------------------------------------------------
-END MODULE YOERRTO15
+END MODULE OYOERRTO15
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto16.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto16.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto16.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto16.f90
index b05078f325c39012a4aedd54ff57e9af5f477607..aa64f69b7222099577577230a5e76bc1e2d108a3 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto16.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto16.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO16
+MODULE OYOERRTO16
 
 
 #include "tsmbkind.h"
@@ -36,4 +36,4 @@ REAL_B :: SELFREFO(10,NO16)
 ! KA      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO16
+END MODULE OYOERRTO16
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto2.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto2.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto2.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto2.f90
index d47a8e111508674f602a9d10536691dc63e098b0..1970cce63a33ab5ea4b99643e468c98fe747f2df 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto2.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto2.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO2
+MODULE OYOERRTO2
 
 
 #include "tsmbkind.h"
@@ -41,4 +41,4 @@ REAL_B :: SELFREFO(10,NO2) , FORREFO(NO2)
 ! SELFREFO: REAL
 ! FORREFO : REAL  
 !     -----------------------------------------------------------------
-END MODULE YOERRTO2
+END MODULE OYOERRTO2
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto3.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto3.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto3.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto3.f90
index ffb3a68a6bfa328f02a223288ff818b85ef3bc42..91cc0b0dbad6f3d5eaa0385dd50dcf22ddb6116c 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto3.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto3.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO3
+MODULE OYOERRTO3
 
 
 #include "tsmbkind.h"
@@ -45,4 +45,4 @@ REAL_B :: SELFREFO(10,NO3)
 ! KBO     : REAL     
 ! SELFREFO: REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO3
+END MODULE OYOERRTO3
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto4.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto4.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto4.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto4.f90
index 7ff81efe82e12659fa2ba9a5e3afbfd97149ae18..604f2f669378cc19027fca32611aab042c8b6d1b 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto4.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto4.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO4
+MODULE OYOERRTO4
 
 
 #include "tsmbkind.h"
@@ -38,4 +38,4 @@ REAL_B :: SELFREFO(10,NO4)
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO4
+END MODULE OYOERRTO4
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto5.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto5.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto5.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto5.f90
index 6e91652e368012a920fca715351c2d214a0c5273..c5a2da3ee6ad3f7308a2f161ec95e5cbcf6184e9 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto5.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto5.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO5
+MODULE OYOERRTO5
 
 
 #include "tsmbkind.h"
@@ -41,4 +41,4 @@ REAL_B :: SELFREFO(10,NO5)
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO5
+END MODULE OYOERRTO5
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto6.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto6.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto6.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto6.f90
index c8f635c6081101a600a6ad44fcac7c78f01db4fb..ac62af2adb5687718e06130c22e1f5baefccf0bb 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto6.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto6.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO6
+MODULE OYOERRTO6
 
 
 #include "tsmbkind.h"
@@ -40,4 +40,4 @@ REAL_B :: SELFREFO(10,NO6)
 ! KA      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO6
+END MODULE OYOERRTO6
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto7.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto7.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto7.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto7.f90
index f03681afa62cb6dcbb14c137d9a292242964658a..51bc19327837f903ce6514395b568300b2065590 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto7.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto7.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO7
+MODULE OYOERRTO7
 
 
 #include "tsmbkind.h"
@@ -41,4 +41,4 @@ REAL_B :: SELFREFO(10,NO7)
 ! KB      : REAL     
 ! SELFREF : REAL  
 !     -----------------------------------------------------------------
-END MODULE YOERRTO7
+END MODULE OYOERRTO7
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto8.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto8.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto8.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto8.f90
index 0f450b3b0a98062a2b8dd5c7ac7ba604d8eaeb6f..eed01883e158d2a50edd7686c18d264152cf2e9f 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto8.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto8.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO8
+MODULE OYOERRTO8
 
 
 #include "tsmbkind.h"
@@ -52,4 +52,4 @@ REAL_B :: SELFREFO(10,NO8)
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO8
+END MODULE OYOERRTO8
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrto9.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrto9.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrto9.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrto9.f90
index 5a0b771c2c409744ab28adf44f916e588a0de00e..410ad8c582a2ba57d08be2f034651dd4883b659e 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrto9.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrto9.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTO9
+MODULE OYOERRTO9
 
 
 #include "tsmbkind.h"
@@ -48,4 +48,4 @@ REAL_B :: SELFREFO(10,NO9)
 ! KB      : REAL     
 ! SELFREF : REAL     
 !     -----------------------------------------------------------------
-END MODULE YOERRTO9
+END MODULE OYOERRTO9
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrtrf.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrtrf.f90
similarity index 96%
rename from src/LIB/RAD/ECMWF_RAD/yoerrtrf.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrtrf.f90
index 429ed63c27db20a284f48635e4c15cc6d56b2f4e..3366ece1fad930b49e8ab705063749962d581bda 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrtrf.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrtrf.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTRF
+MODULE OYOERRTRF
 
 
 #include "tsmbkind.h"
@@ -32,4 +32,4 @@ REAL_B , DIMENSION(59) :: TREF
 ! PREFLOG: REAL
 ! TREF   : REAL
 !     -----------------------------------------------------------------
-END MODULE YOERRTRF
+END MODULE OYOERRTRF
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrtrwt.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrtrwt.f90
similarity index 95%
rename from src/LIB/RAD/ECMWF_RAD/yoerrtrwt.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrtrwt.f90
index 6f3b7adbe06b2e4cf5723db9dbe08d1abcbb5c8f..b55b15634cd8f56e4f014f93ed55403ae92c506b 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrtrwt.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrtrwt.f90
@@ -4,11 +4,11 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:49
 !-----------------------------------------------------------------
-MODULE YOERRTRWT
+MODULE OYOERRTRWT
 
 #include "tsmbkind.h"
 
-USE PARRRTM
+USE OPARRRTM
 
 
 IMPLICIT NONE
@@ -38,4 +38,4 @@ REAL_B :: RWGT   (JPG*JPBAND)
 ! FREFBDF:  REAL   :
 ! RWT    :  REAL   : 
 !    -------------------------------------------------------------------
-END MODULE YOERRTRWT
+END MODULE OYOERRTRWT
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrtwn.f90 b/src/LIB/RAD/ECMWF_RAD/oyoerrtwn.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yoerrtwn.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoerrtwn.f90
index 17e63592e4a2332edb4f1c5d41b2ee375234ae2e..af74682c58840382d59fc1386ff0cf0d536600ff 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrtwn.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoerrtwn.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:50
 !-----------------------------------------------------------------
-MODULE YOERRTWN
+MODULE OYOERRTWN
 
 
 #include "tsmbkind.h"
@@ -42,4 +42,4 @@ REAL_B , DIMENSION(181)    :: TOTPLK16
 ! TOTPLNK : REAL    :
 ! TOTPLK16: REAL    :
 !     -----------------------------------------------------------------
-END MODULE YOERRTWN
+END MODULE OYOERRTWN
diff --git a/src/LIB/RAD/ECMWF_RAD/yoesw.f90 b/src/LIB/RAD/ECMWF_RAD/oyoesw.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/yoesw.f90
rename to src/LIB/RAD/ECMWF_RAD/oyoesw.f90
index df6e443d17d5307a84661093d3d3b0f663c91055..6e88d279260c4cad74568c8798e9ccfc568ab93d 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoesw.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyoesw.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:50
 !-----------------------------------------------------------------
-MODULE YOESW
+MODULE OYOESW
 
 
 #include "tsmbkind.h"
@@ -281,4 +281,4 @@ LOGICAL LO3ONLY
 !                     for Antarctica
 ! RALBICE_AN : REAL : for Arctic
 !     -----------------------------------------------------------------
-END MODULE YOESW
+END MODULE OYOESW
diff --git a/src/LIB/RAD/ECMWF_RAD/yomcst.f90 b/src/LIB/RAD/ECMWF_RAD/oyomcst.f90
similarity index 97%
rename from src/LIB/RAD/ECMWF_RAD/yomcst.f90
rename to src/LIB/RAD/ECMWF_RAD/oyomcst.f90
index 028c8023e2ed660fe1a86e154eb9b7690ef9c068..89f670f423ab315d229ca836ed27acc80c4f98af 100644
--- a/src/LIB/RAD/ECMWF_RAD/yomcst.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyomcst.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:50
 !-----------------------------------------------------------------
-MODULE YOMCST
+MODULE OYOMCST
 
 
 #include "tsmbkind.h"
@@ -77,4 +77,4 @@ REAL_B :: RGAMD
 
 
 !    ------------------------------------------------------------------
-END MODULE YOMCST
+END MODULE OYOMCST
diff --git a/src/LIB/RAD/ECMWF_RAD/yomlun.f90 b/src/LIB/RAD/ECMWF_RAD/oyomlun.f90
similarity index 99%
rename from src/LIB/RAD/ECMWF_RAD/yomlun.f90
rename to src/LIB/RAD/ECMWF_RAD/oyomlun.f90
index b43a1bb7024ca6fcd0b38080bd94c800ccae032f..0b822889eee0cdc1aac7b3a712e61299436dd9d3 100644
--- a/src/LIB/RAD/ECMWF_RAD/yomlun.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyomlun.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:50
 !-----------------------------------------------------------------
-MODULE YOMLUN
+MODULE OYOMLUN
 
 
 #include "tsmbkind.h"
@@ -188,4 +188,4 @@ INTEGER_M :: NUO3CH1
 INTEGER_M :: NUO3CH2
 INTEGER_M :: NTCSR
 !     ------------------------------------------------------------------
-END MODULE YOMLUN
+END MODULE OYOMLUN
diff --git a/src/LIB/RAD/ECMWF_RAD/yomrip.f90 b/src/LIB/RAD/ECMWF_RAD/oyomrip.f90
similarity index 98%
rename from src/LIB/RAD/ECMWF_RAD/yomrip.f90
rename to src/LIB/RAD/ECMWF_RAD/oyomrip.f90
index 9d017b753fbb1c2ea6fc90f4557aec78efb6e80e..82397e7796ea32af0654051bd3e6c9b905e65bf3 100644
--- a/src/LIB/RAD/ECMWF_RAD/yomrip.f90
+++ b/src/LIB/RAD/ECMWF_RAD/oyomrip.f90
@@ -4,7 +4,7 @@
 ! $Source$ $Revision$
 ! ECMWF_RAD2 2003/02/19 13:36:50
 !-----------------------------------------------------------------
-MODULE YOMRIP
+MODULE OYOMRIP
 
 
 #include "tsmbkind.h"
@@ -73,4 +73,4 @@ REAL_B :: RDTS62
 REAL_B :: RDTS22
 REAL_B :: RTDT
 !     ------------------------------------------------------------------
-END MODULE YOMRIP
+END MODULE OYOMRIP
diff --git a/src/LIB/RAD/ECMWF_RAD/rad1Driv_MACLATMOSPH_60LEVELS_ICRCCM3.f90 b/src/LIB/RAD/ECMWF_RAD/rad1Driv_MACLATMOSPH_60LEVELS_ICRCCM3.f90
index 8958756ed3657d26ea9ba737fbe2b66730e35ae5..f54aeb50bb325ea806f3c2edc53405961d031c7a 100644
--- a/src/LIB/RAD/ECMWF_RAD/rad1Driv_MACLATMOSPH_60LEVELS_ICRCCM3.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rad1Driv_MACLATMOSPH_60LEVELS_ICRCCM3.f90
@@ -14,7 +14,7 @@ USE PARRTM1D , ONLY : JP_LON   ,JP_IDIA  ,JP_FDIA  ,JP_TDIA  ,&
 
 !     USE YOMLUN   , ONLY : NULNAM
 
-USE YOMCST   , ONLY : RD       ,RG       ,RTT      ,RSIGMA   ,&
+USE OYOMCST   , ONLY : RD       ,RG       ,RTT      ,RSIGMA   ,&
  &            RCPD   ,RPI      ,RDAY     ,RCPD     ,REA      ,&
  &            RI0    ,RSIGMA   ,REPSM
 USE YOEAERD  , ONLY : CVDAES   ,CVDAEL   ,CVDAEU   ,CVDAED   ,&
@@ -25,19 +25,19 @@ USE YOELW    , ONLY : NSIL     ,NIPD     ,NTRA     ,NUA      ,&
  &            NG1      ,NG1P1    ,WG1
 USE YOEOVLP  , ONLY : RA1OVLP
 USE YOEPHLI  , ONLY : LPHYLIN
-USE YOERAD   , ONLY : NAER     ,NMODE    ,NOZOCL   ,&
+USE OYOERAD   , ONLY : NAER     ,NMODE    ,NOZOCL   ,&
  &            NRADFR   ,NRADPFR  ,NRADPLA  ,NRINT    ,NHOWINH  ,&
  &            NOVLP    ,NRADF2C  ,NRADC2F  ,NLW      ,NSW      ,&
  &            NTSW     ,LERAD6H  ,LERADHS  ,LHVOLCA  ,LNEWAER  ,&
  &            LONEWSW  ,LOWASYF  ,LOWHSSS  ,LOIFUEC  ,LRRTM    ,&
  &            LRADLP   ,LINHOM   ,RAOVLP   ,RBOVLP   ,&
  &            NICEOPT  ,NLIQOPT  ,NRADIP   ,NRADLP   ,RMINICE
-USE YOERDI   , ONLY : RCARDI   ,RCH4     ,RN2O     ,RO3      ,&
+USE OYOERDI   , ONLY : RCARDI   ,RCH4     ,RN2O     ,RO3      ,&
  &            RCFC11   ,RCFC12   ,REPCLC  
 USE YOERDU   , ONLY : NUAER    ,NTRAER   ,NIMP     ,NOUT     ,&
  &            RCDAY    ,R10E     ,REPLOG   ,REPSC    ,REPSCO   ,&
  &            REPSCQ   ,REPSCT   ,REPSCW   ,DIFF
-USE YOESW    , ONLY : LO3ONLY 
+USE OYOESW    , ONLY : LO3ONLY 
 USE YOETHF   , ONLY : R2ES     ,R3LES    ,R3IES    ,R4LES    ,&
  &            R4IES    ,R5LES    ,R5IES    ,R5ALVCP  ,R5ALSCP  ,&
  &            RALVDCP  ,RALSDCP  ,RTWAT    ,RTICE    ,RTICECU
diff --git a/src/LIB/RAD/ECMWF_RAD/radaca.f90 b/src/LIB/RAD/ECMWF_RAD/radaca.f90
index 31a10f45054263529677e66d31e630f1bef03638..df45e504a2322028f2da6a98acc99c8bd3c706eb 100644
--- a/src/LIB/RAD/ECMWF_RAD/radaca.f90
+++ b/src/LIB/RAD/ECMWF_RAD/radaca.f90
@@ -65,14 +65,14 @@ SUBROUTINE RADACA ( KIDIA , KFDIA , KLON , KTDIA , KLEV &
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : R        ,RPI
+USE OYOMCST   , ONLY : R        ,RPI
 USE YOEAERD  , ONLY : CVDAES   ,CVDAEL   ,CVDAEU   ,CVDAED   ,&
             &RCAEOPS  ,RCAEOPL  ,RCAEOPU  ,RCAEOPD  ,RCTRBGA  ,&
             &RCVOBGA  ,RCSTBGA  ,RCTRPT   ,RAESC    ,RAESS    ,&
             &RAELC    ,RAELS    ,RAEUC    ,RAEUS    ,RAEDC    ,&
             &RAEDS
 USE YOEOZOC  , ONLY : COZQC    ,COZQS    ,COZHC    ,COZHS
-USE YOERAD   , ONLY : LHVOLCA  ,LNEWAER
+USE OYOERAD   , ONLY : LHVOLCA  ,LNEWAER
 USE YOEAERC  , ONLY : RSINCT   ,RSINCV   ,REPAER   ,&
             &RTAEBC  ,RTAEOR   ,RTAESD   ,RTAESS   ,RTAESU   , &
             &RTAEVO 
diff --git a/src/LIB/RAD/ECMWF_RAD/radlsw.f90 b/src/LIB/RAD/ECMWF_RAD/radlsw.f90
index c51b13960595cf3db9bc05c5d605c8f2ec8b2989..2f5332dabd6b746c7f111dc3761c8cac3ed04122 100644
--- a/src/LIB/RAD/ECMWF_RAD/radlsw.f90
+++ b/src/LIB/RAD/ECMWF_RAD/radlsw.f90
@@ -96,12 +96,12 @@ SUBROUTINE RADLSW &
 #include "tsmbkind.h"
 
 !USE YOMCT3   , ONLY : NSTEP
-USE YOMCST   , ONLY : RG       ,RD       ,RTT      ,RPI
-USE YOERAD   , ONLY : NSW      ,LRRTM    ,LINHOM, &
+USE OYOMCST   , ONLY : RG       ,RD       ,RTT      ,RPI
+USE OYOERAD   , ONLY : NSW      ,LRRTM    ,LINHOM, &
             &LOIFUEC, LTEMPDS, LOWASYF, LOWHSSS, NRADIP, NRADLP, &
             &NICEOPT, NLIQOPT, NOVLP  , NHOWINH, RMINICE
 USE YOELW    , ONLY : NSIL     ,NTRA     ,NUA      ,TSTAND   ,XP
-USE YOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
+USE OYOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
             &RYFWCE   ,RYFWCF   ,REBCUA   ,REBCUB   ,REBCUC   ,&
             &REBCUD   ,REBCUE   ,REBCUF   ,REBCUI   ,REBCUJ   ,&
             &REBCUG   ,REBCUH   ,RHSAVI   ,RFULIO   ,RFLAA0   ,&
@@ -113,10 +113,10 @@ USE YOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
             &RASWCB   ,RASWCC   ,RASWCD   ,RASWCE   ,RASWCF   ,&
             &RLINLI
 USE YOERDU   , ONLY : NUAER    ,NTRAER   ,REPLOG   ,REPSC    ,DIFF
-USE YOERDI   , ONLY : REPCLC
+USE OYOERDI   , ONLY : REPCLC
 USE YOETHF   , ONLY : RTICE
 USE YOEPHLI  , ONLY : LPHYLIN
-USE YOERRTWN , ONLY : NG        ,NSPA      ,NSPB      ,WAVENUM1  ,&
+USE OYOERRTWN , ONLY : NG        ,NSPA      ,NSPB      ,WAVENUM1  ,&
            &WAVENUM2  ,DELWAVE   ,TOTPLNK   ,TOTPLK16
 USE YOEDBUG  , ONLY : LDEBUG
 
diff --git a/src/LIB/RAD/ECMWF_RAD/radozc.f90 b/src/LIB/RAD/ECMWF_RAD/radozc.f90
index 024ec4626688bbf66846b9014d1a662a97d88af8..007543cecefe4408eeb4ad4bdfe1e0b255c4d213 100644
--- a/src/LIB/RAD/ECMWF_RAD/radozc.f90
+++ b/src/LIB/RAD/ECMWF_RAD/radozc.f90
@@ -52,7 +52,7 @@ SUBROUTINE RADOZC ( KIDIA , KFDIA , KLON , KTDIA , KLEV &
 
 #include "tsmbkind.h"
 
-  USE YOMCST   , ONLY : R
+  USE OYOMCST   , ONLY : R
   USE YOEOZOC  , ONLY : RSINC    ,ROZT     ,RPROC
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_a.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_a.f90
index c3a441db7d74e5b83327814aeea7d14d88573d2f..db44cc8691970751fb31f07061489480dc4493fb 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_a.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_a.f90
@@ -72,9 +72,9 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,FORREFO    ,ABSN2OAO   ,ABSN2OBO
-USE YOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
+USE OYOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
            &N2OREF     ,CO2REF     ,STRRAT
 
 !     ------------------------------------------------------------------
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_b.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_b.f90
index 101173678256f96fda865eb302b65d3888a41585..e82127f7843da9605666707e023add4cbd780eb4 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_b.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_b.f90
@@ -72,9 +72,9 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,FORREFO    ,ABSN2OAO   ,ABSN2OBO
-USE YOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
+USE OYOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
            &N2OREF     ,CO2REF     ,STRRAT
 
 !     ------------------------------------------------------------------
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_c.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_c.f90
index 9bc253ae476ebafada85dc943ec063ca8bc81b34..52da3e3dbad680fa42b343f0860e11dd47b4021f 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_c.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb3_c.f90
@@ -72,9 +72,9 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO3 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO  ,FORREFO    ,ABSN2OAO   ,ABSN2OBO
-USE YOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
+USE OYOERRTA3 , ONLY : ABSN2OA ,ABSN2OB  ,ETAREF    ,H2OREF     ,&
            &N2OREF     ,CO2REF     ,STRRAT
 
 !     ------------------------------------------------------------------
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_a.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_a.f90
index 1bcf74ee1b4ecfb7e9a96a2b0190c41396a47af6..56076ef7c13d137f67b9e8edaafb5adaec1999c5 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_a.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_a.f90
@@ -72,8 +72,8 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
-USE YOERRTA4 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
+USE OYOERRTA4 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_b.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_b.f90
index 3ec659309c76b8aae38c69e9f00e49c8ee250891..d900926d9a592d7fc1dcbb6edec0682fc24eb399 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_b.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_b.f90
@@ -72,8 +72,8 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
-USE YOERRTA4 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
+USE OYOERRTA4 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_c.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_c.f90
index c456450a7786b76736bd4698ebd543dc403229cd..a7071b7e0f01664206150227e8b1e8e97db7c133 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_c.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb4_c.f90
@@ -72,8 +72,8 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
-USE YOERRTA4 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
+USE OYOERRTA4 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_a.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_a.f90
index 30e4404d8da22a0b05d4cdb4605ceef9429f438c..c8fcf472fde11032774f0f51d7b941cb9ae1d2b1 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_a.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_a.f90
@@ -72,9 +72,9 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, CCL4O
-USE YOERRTA5 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTA5 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_b.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_b.f90
index e28cf8001a933fb1aac17da16d269f380e424af7..549b937efa69dd91109cc3f244b633b1ef355f08 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_b.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_b.f90
@@ -72,9 +72,9 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, CCL4O
-USE YOERRTA5 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTA5 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_c.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_c.f90
index 7df98b930b60261c48e6371b23ba026def205377..20827fb94e8fb34e48f639a604129bae94028f15 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_c.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_kgb5_c.f90
@@ -72,9 +72,9 @@ USE PARKIND1, ONLY :&
 ! --------------------------------------
 
 
-USE YOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
+USE OYOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
            &FRACREFBO, CCL4O
-USE YOERRTA5 , ONLY : STRRAT1   ,STRRAT2
+USE OYOERRTA5 , ONLY : STRRAT1   ,STRRAT2
 
 !     ------------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_rrtm_140gp.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_rrtm_140gp.f90
index 04aab830c94da166292397b99dd39ae2f6c5bb0e..eac6c18cb1e2e70dccafb2a41ed1d34a704ccd5b 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_rrtm_140gp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_rrtm_140gp.f90
@@ -61,14 +61,14 @@ SUBROUTINE RRTM_RRTM_140GP &
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,JPLAY    ,&
+USE OPARRRTM  , ONLY : JPBAND   ,JPG      ,JPXSEC   ,JPGPT    ,JPLAY    ,&
             &JPINPX
-USE YOERRTWN , ONLY : WAVENUM1 ,WAVENUM2 ,DELWAVE  ,NG       ,NSPA     ,NSPB
+USE OYOERRTWN , ONLY : WAVENUM1 ,WAVENUM2 ,DELWAVE  ,NG       ,NSPA     ,NSPB
 !
-USE MODI_RRTM_ECRT_140GP
-USE MODI_RRTM_SETCOEF_140GP
-USE MODI_RRTM_GASABS1A_140GP
-USE MODI_RRTM_RTRN1A_140GP
+!USE MODI_ORRTM_ECRT_140GP
+!USE MODI_ORRTM_SETCOEF_140GP
+!USE MODI_ORRTM_GASABS1A_140GP
+!USE MODI_RRTM_RTRN1A_140GP
 !
 !------------------------------Arguments--------------------------------
 
@@ -214,7 +214,7 @@ DO iplon = kidia,kfdia
 
 !  print *,'before RRTM_ECRT_140GP'
 
-  CALL RRTM_ECRT_140GP &
+  CALL ORRTM_ECRT_140GP &
    &( iplon, klon , klev, icld &
    &, paer , paph , pap &
    &, pts  , pth  , pt &
@@ -235,14 +235,14 @@ DO iplon = kidia,kfdia
 
 !  print *,'before RRTM_SETCOEF_140GP'
   
-    CALL RRTM_SETCOEF_140GP (KLEV,COLDRY,WKL &
+    CALL ORRTM_SETCOEF_140GP (KLEV,COLDRY,WKL &
    &, FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1 &
    &, COLH2O,COLCO2,COLO3,COLN2O,COLCH4,COLO2,CO2MULT &
    &, LAYTROP,LAYSWTCH,LAYLOW,PAVEL,TAVEL,SELFFAC,SELFFRAC,INDSELF)
 
 ! print *,'before RRTM_GASABS1A_140GP'
 
-  CALL RRTM_GASABS1A_140GP (KLEV,ATR1,OD,TF1,COLDRY,WX &
+  CALL ORRTM_GASABS1A_140GP (KLEV,ATR1,OD,TF1,COLDRY,WX &
    &, TAUAERL,FAC00,FAC01,FAC10,FAC11,FORFAC,JP,JT,JT1,ONEMINUS &
    &, COLH2O,COLCO2,COLO3,COLN2O,COLCH4,COLO2,CO2MULT &
    &, LAYTROP,LAYSWTCH,LAYLOW,SELFFAC,SELFFRAC,INDSELF,PFRAC)
diff --git a/src/LIB/RAD/ECMWF_RAD/rrtm_rtrn1a_140gp.f90 b/src/LIB/RAD/ECMWF_RAD/rrtm_rtrn1a_140gp.f90
index 7dacbe7d7680dd1a98401192797cb07599613aae..c7b8765156139f1920d101d69a47913301e6338b 100644
--- a/src/LIB/RAD/ECMWF_RAD/rrtm_rtrn1a_140gp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/rrtm_rtrn1a_140gp.f90
@@ -30,10 +30,10 @@ SUBROUTINE RRTM_RTRN1A_140GP (KLEV,ISTART,IEND,ICLDLYR,CLDFRAC,TAUCLD,ABSS1 &
 
 #include "tsmbkind.h"
 
-USE PARRRTM  , ONLY : JPBAND   ,JPGPT   ,JPLAY
-USE YOERRTAB , ONLY : BPADE
-USE YOERRTWN , ONLY : TOTPLNK  ,DELWAVE
-USE YOERRTFTR, ONLY : NGB
+USE OPARRRTM  , ONLY : JPBAND   ,JPGPT   ,JPLAY
+USE OYOERRTAB , ONLY : BPADE
+USE OYOERRTWN , ONLY : TOTPLNK  ,DELWAVE
+USE OYOERRTFTR, ONLY : NGB
 
 IMPLICIT NONE
 
diff --git a/src/LIB/RAD/ECMWF_RAD/satur.f90 b/src/LIB/RAD/ECMWF_RAD/satur.f90
index 4f1d83e030981ab025752d4fd014476b837591ff..ce69c426a864525dd4015ceb17a85615ee80aaf1 100644
--- a/src/LIB/RAD/ECMWF_RAD/satur.f90
+++ b/src/LIB/RAD/ECMWF_RAD/satur.f90
@@ -59,7 +59,7 @@ SUBROUTINE SATUR ( KIDIA , KFDIA , KLON  , KTDIA , KLEV &
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RETV     ,RLVTT    ,RLSTT    ,RTT
+USE OYOMCST   , ONLY : RETV     ,RLVTT    ,RLSTT    ,RTT
 USE YOETHF   , ONLY : R2ES     ,R3LES    ,R3IES    ,R4LES    ,&
             &R4IES    ,R5LES    ,R5IES    ,R5ALVCP  ,R5ALSCP  ,&
             &RALVDCP  ,RALSDCP  ,RTWAT    ,RTICE    ,RTICECU
diff --git a/src/LIB/RAD/ECMWF_RAD/suaerl.f90 b/src/LIB/RAD/ECMWF_RAD/suaerl.f90
index 7de96be1919a7101237276cedf9cffe790b20e6f..d1441142b20e98a1bc1a76ec7d7e1a1cd268aa0b 100644
--- a/src/LIB/RAD/ECMWF_RAD/suaerl.f90
+++ b/src/LIB/RAD/ECMWF_RAD/suaerl.f90
@@ -49,7 +49,7 @@ SUBROUTINE SUAERL
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : RAER
+USE OYOESW    , ONLY : RAER
 
 !      ----------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/suaersn.f90 b/src/LIB/RAD/ECMWF_RAD/suaersn.f90
index 0ce8d6910b334f6cc3ed2b164910a4230109d020..5b75c3c7c8dabf6c08feee4a604f6c26ac8daf04 100644
--- a/src/LIB/RAD/ECMWF_RAD/suaersn.f90
+++ b/src/LIB/RAD/ECMWF_RAD/suaersn.f90
@@ -51,7 +51,7 @@ SUBROUTINE SUAERSN (KTSW,KSW)
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : RTAUA     ,RPIZA    ,RCGA
+USE OYOESW    , ONLY : RTAUA     ,RPIZA    ,RCGA
 
 !      ----------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/sucldp.f90 b/src/LIB/RAD/ECMWF_RAD/sucldp.f90
index f4cb5ffa8987867ac7366532bd84aa7a2e889178..d354dea01f2dee05737727d83c50411a8b868b0e 100644
--- a/src/LIB/RAD/ECMWF_RAD/sucldp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/sucldp.f90
@@ -51,7 +51,7 @@ SUBROUTINE SUCLDP
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RG
+USE OYOMCST   , ONLY : RG
 USE YOECLDP  , ONLY : RAMID    ,RCLDIFF  ,RCLCRIT  ,RKCONV   ,&
             &RPRC1    ,RPRC2    ,RCLDMAX  ,RPECONS  ,RTAUMEL  ,&
             &RENTRTU  ,RENTRRA  ,RAMIN    ,RLMIN    ,RASMICE  ,&
diff --git a/src/LIB/RAD/ECMWF_RAD/suclopn.f90 b/src/LIB/RAD/ECMWF_RAD/suclopn.f90
index 874a940b3ac3c4a9cc935fa5c8bcb9b67847ac78..6b15feb8cd090bb5374de2d9255563055df4318b 100644
--- a/src/LIB/RAD/ECMWF_RAD/suclopn.f90
+++ b/src/LIB/RAD/ECMWF_RAD/suclopn.f90
@@ -61,7 +61,7 @@ SUBROUTINE SUCLOPN (KTSW,KSW , KLEV)
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
+USE OYOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
             &RYFWCE   ,RYFWCF   ,REBCUA   ,REBCUB   ,REBCUC   ,&
             &REBCUD   ,REBCUE   ,REBCUF   ,REBCUG   ,REBCUH   ,&
             &REBCUI   ,REBCUJ   ,RASWCA   ,RASWCB   ,RASWCC   ,&
@@ -74,7 +74,7 @@ USE YOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
             &RFLBB1   ,RFLBB2   ,RFLBB3   ,RFLCC0   ,RFLCC1   ,&
             &RFLCC2   ,RFLCC3   ,RFLDD0   ,RFLDD1   ,RFLDD2   ,&
             &RFLDD3   ,RLINLI   ,RTIW     ,RRIW
-USE YOERAD   , ONLY : RAOVLP   ,RBOVLP
+USE OYOERAD   , ONLY : RAOVLP   ,RBOVLP
 
 IMPLICIT NONE
 
diff --git a/src/LIB/RAD/ECMWF_RAD/sucst.f90 b/src/LIB/RAD/ECMWF_RAD/sucst.f90
index 1c9509e80de9fc83293273040c9031db490b33b2..557f0766314ec644c8c5f6f3718f764debb126d1 100644
--- a/src/LIB/RAD/ECMWF_RAD/sucst.f90
+++ b/src/LIB/RAD/ECMWF_RAD/sucst.f90
@@ -55,7 +55,7 @@ SUBROUTINE SUCST()
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RPI      ,RCLUM    ,RHPLA    ,RKBOL    ,&
+USE OYOMCST   , ONLY : RPI      ,RCLUM    ,RHPLA    ,RKBOL    ,&
             &RNAVO    ,RDAY     ,REA      ,REPSM    ,RSIYEA   ,&
             &RSIDAY   ,ROMEGA   ,RA       ,RG       ,R1SA     ,&
             &RSIGMA   ,RI0      ,R        ,RMD      ,RMV      ,&
@@ -65,7 +65,7 @@ USE YOMCST   , ONLY : RPI      ,RCLUM    ,RHPLA    ,RKBOL    ,&
             &RLMLT    ,RTT      ,RATM     ,RDT      ,RESTT    ,&
             &RALPW    ,RBETW    ,RGAMW    ,RALPS    ,RBETS    ,&
             &RGAMS    ,RALPD    ,RBETD    ,RGAMD
-USE YOMRIP   , ONLY : RTIMST   ,RTIMTR
+USE OYOMRIP   , ONLY : RTIMST   ,RTIMTR
 
 IMPLICIT NONE
 
diff --git a/src/LIB/RAD/ECMWF_RAD/suecaec.f90 b/src/LIB/RAD/ECMWF_RAD/suecaec.f90
index 8c5c747279bf72c57992b306eb8286564b51448b..4ee45fa5fad60ce6d6517c7883aebfadb51c4dfe 100644
--- a/src/LIB/RAD/ECMWF_RAD/suecaec.f90
+++ b/src/LIB/RAD/ECMWF_RAD/suecaec.f90
@@ -67,7 +67,7 @@ SUBROUTINE SUECAEC ( KINDAT, KMINUT )
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RPI   , RDAY
+USE OYOMCST   , ONLY : RPI   , RDAY
 USE YOEAERC  , ONLY : RAERBC, RAEROR, RAERSD, RAERSS, RAERSU,&
               &REPAER, RSINCT, RSINCV,&
               &RTAEBC, RTAEOR, RTAESD, RTAESS, RTAESU, RTAEVO
diff --git a/src/LIB/RAD/ECMWF_RAD/suecozc.f90 b/src/LIB/RAD/ECMWF_RAD/suecozc.f90
index e04eda664ca320d26e39822903d2cb08b654ff66..88e395d77eca68e1132b7ca614c9b9817d7ca36e 100644
--- a/src/LIB/RAD/ECMWF_RAD/suecozc.f90
+++ b/src/LIB/RAD/ECMWF_RAD/suecozc.f90
@@ -53,8 +53,8 @@ SUBROUTINE SUECOZC ( KINDAT, KMINUT )
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RPI      ,RDAY
-USE YOERDI   , ONLY : RO3
+USE OYOMCST   , ONLY : RPI      ,RDAY
+USE OYOERDI   , ONLY : RO3
 USE YOEOZOC  , ONLY : RSINC    ,ROZT     ,RPROC
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/suovlp.f90 b/src/LIB/RAD/ECMWF_RAD/suovlp.f90
index 43bb5384469b2e62ee2c4622491ad1cd858c5ff9..88e1d577d511c4b8bdb6c52c025d94ac0a1fb968 100644
--- a/src/LIB/RAD/ECMWF_RAD/suovlp.f90
+++ b/src/LIB/RAD/ECMWF_RAD/suovlp.f90
@@ -28,7 +28,7 @@ SUBROUTINE SUOVLP ( KLEV, PAZ )
 
 #include "tsmbkind.h"
 
-USE YOERAD   , ONLY : RAOVLP, RBOVLP
+USE OYOERAD   , ONLY : RAOVLP, RBOVLP
 USE YOEOVLP  , ONLY : RA1OVLP
 
 IMPLICIT NONE
diff --git a/src/LIB/RAD/ECMWF_RAD/susw.f90 b/src/LIB/RAD/ECMWF_RAD/susw.f90
index 56ecae27a223cfba018e052bc4554ef861d63bcf..b08fa3f1b8c05902dcffdae4b983fa6aa08ced64 100644
--- a/src/LIB/RAD/ECMWF_RAD/susw.f90
+++ b/src/LIB/RAD/ECMWF_RAD/susw.f90
@@ -48,8 +48,8 @@ SUBROUTINE SUSW
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RG
-USE YOESW    , ONLY : APAD     ,BPAD     ,RRAY     ,RSUN     ,&
+USE OYOMCST   , ONLY : RG
+USE OYOESW    , ONLY : APAD     ,BPAD     ,RRAY     ,RSUN     ,&
             &RPDH1    ,RPDU1    ,RPNH     ,RPNU     ,RSWCE    ,&
             &RSWCP    ,RTDH2O   ,RTDUMG   ,RTH2O    ,RTUMG    ,D
 
diff --git a/src/LIB/RAD/ECMWF_RAD/suswn.f90 b/src/LIB/RAD/ECMWF_RAD/suswn.f90
index 012eb7e0c2a0e70fca2e0382b537dcd6ee1a080c..e4c3a53c4c8034d42f5bd3c48d0a31ffb5bc0746 100644
--- a/src/LIB/RAD/ECMWF_RAD/suswn.f90
+++ b/src/LIB/RAD/ECMWF_RAD/suswn.f90
@@ -54,9 +54,9 @@ SUBROUTINE SUSWN (KTSW,KSW)
 
 #include "tsmbkind.h"
 
-USE YOMCST   , ONLY : RG
-USE YOERAD   , ONLY : NTSW     ,LONEWSW
-USE YOESW    , ONLY : APAD     ,BPAD     ,RRAY     ,RSUN     ,&
+USE OYOMCST   , ONLY : RG
+USE OYOERAD   , ONLY : NTSW     ,LONEWSW
+USE OYOESW    , ONLY : APAD     ,BPAD     ,RRAY     ,RSUN     ,&
            &RPDH1    ,RPDU1    ,RPNH     ,RPNU     ,RSWCE    ,&
            &RSWCP    ,RTDH2O   ,RTDUMG   ,RTH2O    ,RTUMG    ,&
            &D        ,RROMA    ,RROMB    ,RRASY    ,RHSRA    ,&
diff --git a/src/LIB/RAD/ECMWF_RAD/sw.f90 b/src/LIB/RAD/ECMWF_RAD/sw.f90
index ed4a5cc04a50328dec584bff6887f791b89d35dc..6b82f33f46aed135eb7c53cc2b53b1eee5d4d430 100644
--- a/src/LIB/RAD/ECMWF_RAD/sw.f90
+++ b/src/LIB/RAD/ECMWF_RAD/sw.f90
@@ -66,10 +66,10 @@ SUBROUTINE SW &
 
 #include "tsmbkind.h"
 
-USE YOERAD   , ONLY : NSW
+USE OYOERAD   , ONLY : NSW
 USE YOERDU   , ONLY : RCDAY
 !++MODIF_MESONH
-USE YOERAD   , ONLY : NOVLP
+USE OYOERAD   , ONLY : NOVLP
 !--MODIF_MESONH
 USE MODI_SWU
 USE MODI_SW1S
@@ -242,6 +242,12 @@ DO JK = 1 , KLEV+1
   ENDDO
 ENDDO
 
+! PRINT*,"sw  PDIFFS,PDIRFS"
+! 
+! PRINT*,PDIFFS
+! 
+! PRINT*,PDIRFS
+
 DO JNU = INUIR , NSW
 
    !++MODIF_MESONH
@@ -256,8 +262,14 @@ DO JNU = INUIR , NSW
            &,  PTAUREL_DST(:,:,JNU) &
            &)
     !--MODIF_MESONH
+    
+    
 
   DO JL=KIDIA,KFDIA
+!     PRINT*,JL,JNU
+!     PRINT*,"SW"
+!     PRINT*,ZDIFF2(JL,1)
+    
     PDIFFS(JL,JNU)=ZDIFF2(JL,1)*ZFACT(JL)
     PDIRFS(JL,JNU)=ZDIRF2(JL,1)*ZFACT(JL)
   ENDDO
@@ -273,6 +285,14 @@ DO JNU = INUIR , NSW
     ZSUDU2T(JL)=ZSUDU2T(JL)+ZSUDU2(JL)
   ENDDO
 ENDDO
+! 
+! PRINT*,"sw  PDIFFS,PDIRFS"
+! 
+! PRINT*,PDIFFS
+! 
+! PRINT*,PDIRFS
+! 
+! pause
 
 !     ------------------------------------------------------------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/sw1s.f90 b/src/LIB/RAD/ECMWF_RAD/sw1s.f90
index 77e1e50b58f07133c19d96c660b7b24bab1b390c..70061980643f6f00e3f51a10a125ab4b151a1c4a 100644
--- a/src/LIB/RAD/ECMWF_RAD/sw1s.f90
+++ b/src/LIB/RAD/ECMWF_RAD/sw1s.f90
@@ -66,9 +66,9 @@ SUBROUTINE SW1S &
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : RRAY     ,RSUN
+USE OYOESW    , ONLY : RRAY     ,RSUN
 !++MODIF_MESONH
-USE YOERAD   , ONLY : NSW , NOVLP
+USE OYOERAD   , ONLY : NSW , NOVLP
 !--MODIF_MESONH
 USE MODI_SWCLR
 USE MODI_SWR
@@ -84,7 +84,7 @@ INTEGER_M :: KFDIA
 INTEGER_M :: KIDIA
 INTEGER_M :: KLEV
 INTEGER_M :: KLON
-INTEGER_M :: KNU   ! index of wl
+INTEGER_M :: KNU
 
 
 
@@ -102,9 +102,9 @@ REAL_B :: PAER(KLON,6,KLEV)&
   &,  PRMU(KLON)           , PSEC(KLON)&
   &,  PTAU(KLON,NSW,KLEV)  , PUD(KLON,5,KLEV+1)
 
-REAL_B :: PFD(KLON,KLEV+1) , PFU(KLON,KLEV+1)&  ! Fluxes down and up
-  &,  PCD(KLON,KLEV+1)     , PCU(KLON,KLEV+1)&  ! Fluxes clear down and up
-  &,  PSUDU1(KLON)         , PDIFF(KLON,KLEV)&  
+REAL_B :: PFD(KLON,KLEV+1) , PFU(KLON,KLEV+1)&
+  &,  PCD(KLON,KLEV+1)     , PCU(KLON,KLEV+1)&
+  &,  PSUDU1(KLON)         , PDIFF(KLON,KLEV)&
   &,  PDIRF(KLON,KLEV)
 
 !++MODIF_MESONH
@@ -136,12 +136,10 @@ REAL_B :: ZCGAZ(KLON,KLEV)&
   &,  ZTRA1(KLON,KLEV+1), ZTRA2(KLON,KLEV+1)&
   &,  ZTRCLD(KLON)      , ZTRCLR(KLON)&
   &,  ZW6(KLON,6)       , ZW4(KLON,4), ZO(KLON,2) ,ZT(KLON,2) 
-  
+
 REAL_B :: ZTA1(KLON), ZTO1(KLON)
-REAL_B :: ZCLDIR 
+REAL_B :: ZCLDIR   
   
-  
-
 !     LOCAL INTEGER SCALARS
 INTEGER_M :: IKL, IKM1, JAJ, JK, JL
 
@@ -157,18 +155,12 @@ INTEGER_M :: IKL, IKM1, JAJ, JK, JL
 !*         1.1    OPTICAL THICKNESS FOR RAYLEIGH SCATTERING
 !                 -----------------------------------------
 
-! PRINT *,"PCLEAR ",PCLEAR
-! PAUSE
-
-! Rayleigh optical depth (Deschamps 1983)
 DO JL = KIDIA,KFDIA
   ZRAYL(JL) =  RRAY(KNU,1) + PRMU(JL) * (RRAY(KNU,2) + PRMU(JL)&
    &* (RRAY(KNU,3) + PRMU(JL) * (RRAY(KNU,4) + PRMU(JL)&
    &* (RRAY(KNU,5) + PRMU(JL) *  RRAY(KNU,6)       ))))
 ENDDO
 
-! PRINT *,"SW1S.F90 ZRAYL ", ZRAYL(1)
-! PRINT *,"YEAH"
 
 !     ------------------------------------------------------------------
 
@@ -188,28 +180,17 @@ ENDDO
         &, ODUST  , PPIZA_DST,PCGA_DST  &
        &, PTAUREL_DST )
 !--MODIF_MESONH
-! ZRJ0 and ZRK0 are downard and upward fluxes
-
-! PRINT *,"SW1S.F90 ZTAUAZ ",ZTAUAZ(1,1),ZTAUAZ(1,2)
 
 !*         2.2   CLOUDY FRACTION OF THE COLUMN
 !                -----------------------------
 
-! PTAU is cloud optical depth
-! PAER is aerosol optical depth
-! ZRAYL is rayleigh optical depth
-! NB : cloudy columns are further splitted into cloudy and clear portions
+
 CALL SWR &
   &( KIDIA ,KFDIA ,KLON  ,KLEV  , KNU &
   &, PALBD ,PCG   ,PCLD  ,POMEGA, PSEC , PTAU &
   &, ZCGAZ ,ZPIZAZ,ZRAY1 ,ZRAY2 , ZREFZ, ZRJ  ,ZRK , ZRMUE &
   &, ZTAUAZ,ZTRA1 ,ZTRA2 ,ZTRCLD &
   &)
-! PRINT *,"SW1S.F90 ZTAUAZ ",ZTAUAZ(1,1)
-! PRINT *,"ZRJ ",ZRJ(1,3,5),ZRK(1,3,5)
-! PRINT *,"ZRMU0 ",ZRMU0(1,1)
-! 
-! PRINT*,"ZTRCLD ZTRCLR ",ZTRCLD(:5),ZTRCLR(:5)
 
 !     ------------------------------------------------------------------
 
@@ -272,16 +253,13 @@ IF (NSW <= 4) THEN
       PCD(JL,IKL) = ZDIRF(JL) * RSUN(KNU)
     ENDDO
   ENDDO
-  
-  
+
   DO JL=KIDIA,KFDIA
-    ZDIFT(JL) = ZR6(JL,1)*ZR6(JL,2)*ZR6(JL,3)*ZTRCLD(JL) ! t for true ?
-    ZDIRT(JL) = ZR6(JL,4)*ZR6(JL,5)*ZR6(JL,6)*ZTRCLR(JL) 
-    PSUDU1(JL) = ((_ONE_-PCLEAR(JL)) * ZDIFT(JL)&        ! quantity not used by ECMWF_VERSION_2
+    ZDIFT(JL) = ZR6(JL,1)*ZR6(JL,2)*ZR6(JL,3)*ZTRCLD(JL)
+    ZDIRT(JL) = ZR6(JL,4)*ZR6(JL,5)*ZR6(JL,6)*ZTRCLR(JL)
+    PSUDU1(JL) = ((_ONE_-PCLEAR(JL)) * ZDIFT(JL)&
      &+PCLEAR(JL) * ZDIRT(JL)) * RSUN(KNU)
   ENDDO
-  
-
 
 
 !*         3.1.2  UPWARD FLUXES
@@ -405,20 +383,9 @@ ELSE IF (NSW == 6) THEN
       PDIFF(JL,IKL) = PFD(JL,IKL) - PDIRF(JL,IKL)
     ! Quentin
     
-!     PRINT *,"IKL",IKL
-!     PRINT *,"SW1.f90 PDIFF ",PDIFF(:5,1)
-!     PRINT *,"SW1.f90 PDIRF ",PDIRF(:5,1)
     ENDDO
-      
   ENDDO
-!   PRINT *,"SW1.f90 PDIFF ",PDIFF(:5,1)
-!   PRINT *,"SW1.f90 PDIRF ",PDIRF(:5,1)
-!   PRINT *,"SW1.f90 ZDIFF ",ZDIFF(1)
-!   PRINT *,"SW1.f90 ZDIRF ",ZDIRF(1)
-!   PRINT *,"SW1.f90 RSUN ",RSUN(KNU)
-!   PRINT *,"SW1.f90 PCLEAR ",PCLEAR(1)
-!   PRINT *,"SW1.f90 SIZE(PDIFF,1) ",SIZE(PDIFF,1),SIZE(PDIFF,2)
-  
+
   DO JL=KIDIA,KFDIA
     ZDIFT(JL) = ZR4(JL,1)*ZR4(JL,2)*ZT(JL,1)*ZTRCLD(JL)     ! true components with corrected cloudiness
     ZDIRT(JL) = ZR4(JL,3)*ZR4(JL,4)*ZT(JL,2)*ZTRCLR(JL)
@@ -426,7 +393,6 @@ ELSE IF (NSW == 6) THEN
       &+PCLEAR(JL) * ZDIRT(JL)) * RSUN(KNU)
   ENDDO
 
-
 !*         3.2.2  UPWARD FLUXES
 !                 -------------
 
diff --git a/src/LIB/RAD/ECMWF_RAD/sw2s.f90 b/src/LIB/RAD/ECMWF_RAD/sw2s.f90
index 308244e5a694105a69d8a674293f68c1e7504b77..e3297996ddb7e1e0105c26934578174c7a575c6b 100644
--- a/src/LIB/RAD/ECMWF_RAD/sw2s.f90
+++ b/src/LIB/RAD/ECMWF_RAD/sw2s.f90
@@ -67,7 +67,7 @@ SUBROUTINE SW2S ( KIDIA, KFDIA, KLON , KLEV , KAER, KNU &
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : RRAY     ,RSUN
+USE OYOESW    , ONLY : RRAY     ,RSUN
 USE YOERDU   , ONLY : REPLOG
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/swclr.f90 b/src/LIB/RAD/ECMWF_RAD/swclr.f90
index c9c801de301734a1be9a30208d12125bddd7b5d7..ea7146f33af8ab11ec28fc9f4215c709b06546e6 100644
--- a/src/LIB/RAD/ECMWF_RAD/swclr.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swclr.f90
@@ -60,9 +60,9 @@ SUBROUTINE SWCLR &
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : RTAUA    ,RPIZA    ,RCGA
-USE YOERAD   , ONLY : NOVLP    ,NSW
-USE YOERDI   , ONLY : REPCLC
+USE OYOESW    , ONLY : RTAUA    ,RPIZA    ,RCGA
+USE OYOERAD   , ONLY : NOVLP    ,NSW
+USE OYOERDI   , ONLY : REPCLC
 USE YOERDU   , ONLY : REPSCT
 
 
@@ -226,14 +226,14 @@ DO JK = 1 , KLEV
    DO JL = KIDIA,KFDIA
     IF (KAER /= 0) THEN
       ZTRAY = PRAYL(JL) * PDSIG(JL,JK)
-      ZRATIO =PPIZAZ(JL,JK)+ZTRAY
+      ZRATIO =PPIZAZ(JL,JK)+ZTRAY  ! wi*ti+1*tr
       !Ponderation G**2
       ZFACOA_NEW(JL,JK)= ZFACOA_NEW(JL,JK)/ZRATIO
       !Ponderation w
       PPIZAZ(JL,JK)=ZRATIO/(PTAUAZ(JL,JK)+ZTRAY)
       !Ponderation g
       PCGAZ(JL,JK)=PCGAZ(JL,JK)/ZRATIO
-      !Ponderation+delta-modified parameters tau
+      !Ponderation+delta-modified parameters tau - applies delta-Eddington to the complete phase function 
       PTAUAZ(JL,JK)=(ZTRAY+PTAUAZ(JL,JK))*&
           (_ONE_-PPIZAZ(JL,JK)*ZFACOA_NEW(JL,JK))
       !delta-modified parameters w
diff --git a/src/LIB/RAD/ECMWF_RAD/swde.f90 b/src/LIB/RAD/ECMWF_RAD/swde.f90
index 07975c9f9e22328fa899a66f4147337465adf664..ec77caa4ea728a9ee46aa7b8ab4d354b87b7df96 100644
--- a/src/LIB/RAD/ECMWF_RAD/swde.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swde.f90
@@ -72,7 +72,7 @@ SUBROUTINE SWDE &
 
 
 #include "tsmbkind.h"
-USE YOERAD   , ONLY : NOVLP 
+USE OYOERAD   , ONLY : NOVLP 
 IMPLICIT NONE
 
 
diff --git a/src/LIB/RAD/ECMWF_RAD/swni.f90 b/src/LIB/RAD/ECMWF_RAD/swni.f90
index e91319144adb6f9496e5751fa43513eae61d66ab..138967d0a2820661aaf4949de30abf6d116e634a 100644
--- a/src/LIB/RAD/ECMWF_RAD/swni.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swni.f90
@@ -68,9 +68,9 @@ SUBROUTINE SWNI &
 
 #include "tsmbkind.h"
 
-USE YOERAD   , ONLY : NOVLP 
-USE YOESW    , ONLY : RRAY     ,RSUN     ,RSWCE    ,RSWCP
-USE YOERAD   , ONLY : NSW
+USE OYOERAD   , ONLY : NOVLP 
+USE OYOESW    , ONLY : RRAY     ,RSUN     ,RSWCE    ,RSWCP
+USE OYOERAD   , ONLY : NSW
 USE YOERDU   , ONLY : REPLOG
 !
 USE MODI_SWCLR
@@ -113,11 +113,11 @@ REAL_B :: PFDOWN(KLON,KLEV+1)  , PFUP(KLON,KLEV+1)&
   &,  PCDOWN(KLON,KLEV+1)  , PCUP(KLON,KLEV+1)&
   &,  PSUDU2(KLON)         , PDIFF(KLON,KLEV)&
   &,  PDIRF(KLON,KLEV) 
-  
+
 !Quentin
 REAL_B :: ZCLDIR 
-REAL_B :: ZTA1(KLON)
-
+REAL_B :: ZTA1(KLON)  
+  
 !++MODIF_MESONH
 LOGICAL           :: ODUST                   ! flag for DUST
 REAL_B  :: PPIZA_DST(KLON,KLEV)    !wvl ssa dust for current wavelength
@@ -579,7 +579,12 @@ DO JK = 1 , KLEV
     ! PDIRF(JL,IKL)=ZFD(JL,IKL)*RSUN(KNU)* PCLEAR(JL)
   ENDDO
 ENDDO
-
+! 
+! PRINT*,"SWNI,PDIFF,PDIRF"
+! print*, KLEV,shape(PDIRF),shape(PFDOWN)
+! PRINT*,PDIRF(1,:)-PFDOWN(1,1:KLEV)
+! PRINT*,PDIFF(:,1)
+! PRINT*,PDIRF(:,1)
 
 !*         6.2    UPWARD FLUXES
 !                 -------------
diff --git a/src/LIB/RAD/ECMWF_RAD/swr.f90 b/src/LIB/RAD/ECMWF_RAD/swr.f90
index 5e0e33438f91d784880af47797f0020a131ed418..714e971c87dc3739c8dd81b6527e5e11582dee73 100644
--- a/src/LIB/RAD/ECMWF_RAD/swr.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swr.f90
@@ -56,7 +56,7 @@ SUBROUTINE SWR &
 
 #include "tsmbkind.h"
 
-USE YOERAD   , ONLY : NOVLP    ,NSW
+USE OYOERAD   , ONLY : NOVLP    ,NSW
 USE YOECLD   , ONLY : REPSEC
 USE YOEOVLP  , ONLY : RA1OVLP
 !
diff --git a/src/LIB/RAD/ECMWF_RAD/swtt.f90 b/src/LIB/RAD/ECMWF_RAD/swtt.f90
index ea784bbe29b9dca34a64e7991aa407134d296a6f..df34a9870d17910865f40050c910a70dc6dd6bf0 100644
--- a/src/LIB/RAD/ECMWF_RAD/swtt.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swtt.f90
@@ -59,7 +59,7 @@ SUBROUTINE SWTT ( KIDIA, KFDIA, KLON, KNU, KA , PU, PTR)
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : APAD     ,BPAD     ,D
+USE OYOESW    , ONLY : APAD     ,BPAD     ,D
 
 
 IMPLICIT NONE
diff --git a/src/LIB/RAD/ECMWF_RAD/swtt1.f90 b/src/LIB/RAD/ECMWF_RAD/swtt1.f90
index 3151cfb1c9b650db1220dd941a93e11ce7bb6b0b..a3d7433e4059d68ab0d81ca22809a8cc24504f97 100644
--- a/src/LIB/RAD/ECMWF_RAD/swtt1.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swtt1.f90
@@ -60,7 +60,7 @@ SUBROUTINE SWTT1 ( KIDIA,KFDIA,KLON,KNU,KABS,KIND, PU, PTR )
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : APAD     ,BPAD     ,D
+USE OYOESW    , ONLY : APAD     ,BPAD     ,D
 
 
 IMPLICIT NONE
diff --git a/src/LIB/RAD/ECMWF_RAD/swu.f90 b/src/LIB/RAD/ECMWF_RAD/swu.f90
index e23b436aba247826fa6a4d943f78e8eda9565c77..15c8123fc878783d22adcdd78a30048a7564d636 100644
--- a/src/LIB/RAD/ECMWF_RAD/swu.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swu.f90
@@ -54,9 +54,9 @@ SUBROUTINE SWU &
 #include "tsmbkind.h"
 
 USE YOECLD   , ONLY : REPSEC
-USE YOERAD   , ONLY : NOVLP    ,NSW
+USE OYOERAD   , ONLY : NOVLP    ,NSW
 USE YOERDU   , ONLY : REPSCQ
-USE YOESW    , ONLY : RPDH1    ,RPDU1    ,RPNH     ,RPNU     ,&
+USE OYOESW    , ONLY : RPDH1    ,RPDU1    ,RPNH     ,RPNU     ,&
             &RTDH2O   ,RTDUMG   ,RTH2O    ,RTUMG
 USE YOEOVLP  , ONLY : RA1OVLP
 !
diff --git a/src/LIB/RAD/ECMWF_RAD/swuvo3.f90 b/src/LIB/RAD/ECMWF_RAD/swuvo3.f90
index dcbb077e3f8fa9f4edfaa7f5a80b620b78e60ad8..172f7378611fcb9b13e1d1d75eeb23145a831196 100644
--- a/src/LIB/RAD/ECMWF_RAD/swuvo3.f90
+++ b/src/LIB/RAD/ECMWF_RAD/swuvo3.f90
@@ -60,7 +60,7 @@ SUBROUTINE SWUVO3 &
 
 #include "tsmbkind.h"
 
-USE YOESW    , ONLY : NEXPO3, REXPO3
+USE OYOESW    , ONLY : NEXPO3, REXPO3
 
 
 IMPLICIT NONE
diff --git a/src/LIB/RAD/ECMWF_RAD/yoerrtam.f90 b/src/LIB/RAD/ECMWF_RAD/yoerrtam.f90
index bc6b16a63d32f090e7390cccb2406bd40bae3e62..201c90e98ed8e9f92c551b732056d0b5253c840c 100644
--- a/src/LIB/RAD/ECMWF_RAD/yoerrtam.f90
+++ b/src/LIB/RAD/ECMWF_RAD/yoerrtam.f90
@@ -8,7 +8,7 @@ MODULE YOERRTAM
 
 #include "tsmbkind.h"
 
-USE PARRRTM
+USE OPARRRTM
 
 
 IMPLICIT NONE
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/cloud_overlap_decorr_len.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/cloud_overlap_decorr_len.F90
new file mode 100644
index 0000000000000000000000000000000000000000..a0c35ec7763081afce3ccaaa91ade2576f2f8193
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/cloud_overlap_decorr_len.F90
@@ -0,0 +1,140 @@
+!      #################################
+       MODULE MODI_CLOUD_OVERLAP_DECORR_LEN
+!      #################################
+INTERFACE
+
+SUBROUTINE CLOUD_OVERLAP_DECORR_LEN &
+     & (KIDIA, KFDIA, KLON, PGEMU, NDECOLAT, &
+     &  PDECORR_LEN_EDGES_KM, PDECORR_LEN_WATER_KM, PDECORR_LEN_RATIO)
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+
+INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA    ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA    ! End column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KLON     ! Number of columns
+REAL(KIND=JPRB),   INTENT(IN) :: PGEMU(KLON) ! Sine of latitude
+INTEGER(KIND=JPIM),INTENT(IN) :: NDECOLAT
+REAL(KIND=JPRB), INTENT(OUT)           :: PDECORR_LEN_EDGES_KM(KLON)
+REAL(KIND=JPRB), INTENT(OUT), OPTIONAL :: PDECORR_LEN_WATER_KM(KLON)
+REAL(KIND=JPRB), INTENT(OUT), OPTIONAL :: PDECORR_LEN_RATIO
+
+END SUBROUTINE CLOUD_OVERLAP_DECORR_LEN
+END INTERFACE
+END MODULE MODI_CLOUD_OVERLAP_DECORR_LEN
+
+SUBROUTINE CLOUD_OVERLAP_DECORR_LEN &
+     & (KIDIA, KFDIA, KLON, PGEMU, NDECOLAT, &
+     &  PDECORR_LEN_EDGES_KM, PDECORR_LEN_WATER_KM, PDECORR_LEN_RATIO)
+
+! CLOUD_OVERLAP_DECORR_LEN
+!
+! PURPOSE
+! -------
+!   Calculate the cloud overlap decorrelation length as a function of
+!   latitude for use in the radiation scheme
+!
+! INTERFACE
+! ---------
+!   CLOUD_OVERLAP_DECORR_LEN is called from RADLSWR and RADIATION_SCHEME
+!
+! AUTHOR
+! ------
+!   Robin Hogan, ECMWF (using code extracted from radlswr.F90)
+!   Original: 2016-02-16
+!
+! MODIFICATIONS
+! -------------
+!
+! -------------------------------------------------------------------
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+USE YOMHOOK  , ONLY : LHOOK, DR_HOOK
+USE YOMCST   , ONLY : RPI
+USE MODD_PARAM_ECRAD_N   , ONLY : XDECORR_CF,XDECORR_CW
+
+! -------------------------------------------------------------------
+
+IMPLICIT NONE
+
+! INPUT ARGUMENTS
+
+! *** Array dimensions and ranges
+INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA    ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA    ! End column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KLON     ! Number of columns
+
+! *** Single-level variables 
+REAL(KIND=JPRB),   INTENT(IN) :: PGEMU(KLON) ! Sine of latitude
+
+! *** Configuration variable controlling the overlap scheme
+INTEGER(KIND=JPIM),INTENT(IN) :: NDECOLAT
+
+! OUTPUT ARGUMENTS
+
+! *** Decorrelation lengths for cloud edges and cloud water content,
+! *** in km
+REAL(KIND=JPRB), INTENT(OUT)           :: PDECORR_LEN_EDGES_KM(KLON)
+REAL(KIND=JPRB), INTENT(OUT), OPTIONAL :: PDECORR_LEN_WATER_KM(KLON)
+  
+! Ratio of water-content to cloud-edge decorrelation lengths
+REAL(KIND=JPRB), INTENT(OUT), OPTIONAL :: PDECORR_LEN_RATIO
+
+! LOCAL VARIABLES
+
+REAL(KIND=JPRB) :: ZRADIANS_TO_DEGREES, ZABS_LAT_DEG, ZCOS_LAT
+
+INTEGER(KIND=JPIM) :: JL
+
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+! -------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('CLOUD_OVERLAP_DECORR_LEN',0,ZHOOK_HANDLE)
+  
+! -------------------------------------------------------------------
+IF (NDECOLAT == 0) THEN
+
+  ! Decorrelation lengths are constant values
+  PDECORR_LEN_EDGES_KM(KIDIA:KFDIA) = XDECORR_CF
+  IF (PRESENT(PDECORR_LEN_WATER_KM)) THEN
+    PDECORR_LEN_WATER_KM(KIDIA:KFDIA) = XDECORR_CW
+  ENDIF
+  IF (PRESENT(PDECORR_LEN_RATIO)) THEN
+    PDECORR_LEN_RATIO = XDECORR_CW / XDECORR_CF
+  ENDIF
+
+ELSE
+
+  ZRADIANS_TO_DEGREES = 180.0_JPRB / RPI
+
+  IF (NDECOLAT == 1) THEN
+    ! Shonk et al. (2010) Eq. 13 formula
+    DO JL = KIDIA,KFDIA
+      ZABS_LAT_DEG = ABS(ASIN(PGEMU(JL)) * ZRADIANS_TO_DEGREES)
+      PDECORR_LEN_EDGES_KM(JL) = 2.899_JPRB - 0.02759_JPRB * ZABS_LAT_DEG
+    ENDDO
+  ELSE ! NDECOLAT == 2
+    DO JL = KIDIA,KFDIA
+      ! Shonk et al. (2010) but smoothed over the equator
+      ZCOS_LAT = COS(ASIN(PGEMU(JL)))
+      PDECORR_LEN_EDGES_KM(JL) = 0.75_JPRB + 2.149_JPRB * ZCOS_LAT*ZCOS_LAT
+    ENDDO
+  ENDIF
+
+  ! Both NDECOLAT = 1 and 2 assume that the decorrelation length for
+  ! cloud water content is half that for cloud edges
+  IF (PRESENT(PDECORR_LEN_WATER_KM)) THEN
+    PDECORR_LEN_WATER_KM(KIDIA:KFDIA) = PDECORR_LEN_EDGES_KM(KIDIA:KFDIA) * 0.5_JPRB
+  ENDIF
+
+  IF (PRESENT(PDECORR_LEN_RATIO)) THEN
+    PDECORR_LEN_RATIO = 0.5_JPRB
+  ENDIF
+
+ENDIF
+
+! -------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('CLOUD_OVERLAP_DECORR_LEN',1,ZHOOK_HANDLE)
+
+END SUBROUTINE CLOUD_OVERLAP_DECORR_LEN
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/cos_sza.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/cos_sza.F90
new file mode 100644
index 0000000000000000000000000000000000000000..f02aeb1dc0d8b66f526824678b7bcea1428cb5f0
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/cos_sza.F90
@@ -0,0 +1,345 @@
+SUBROUTINE COS_SZA(KSTART,KEND,KCOL,PGEMU,PGELAM,LDRADIATIONTIMESTEP,PMU0)
+
+!**** *COS_SZA*   
+
+!     Purpose.
+!     --------
+!        Compute the cosine of the solar zenith angle.  Note that this
+!        is needed for three different things: (1) as input to the
+!        radiation scheme in which it is used to compute the path
+!        length of the direct solar beam through the atmosphere, (2)
+!        every timestep to scale the solar fluxes by the incoming
+!        solar radiation at top-of-atmosphere, and (3) to compute the
+!        albedo of the ocean.  For (1) we ideally want an average
+!        value for the duration of a radiation timestep while for (2)
+!        we want an average value for the duration of a model
+!        timestep.
+
+!**   Interface.
+!     ----------
+!        *CALL* *COS_SZA(...)
+
+!        Explicit arguments : 
+!        ------------------
+!            PGEMU - Sine of latitude
+!            PGELAM - Geographic longitude in radians
+!            LDRadiationTimestep - Is this for a radiation timestep?
+!            PMU0 - Output cosine of solar zenith angle
+
+!        Implicit arguments :
+!        --------------------
+!            YRRIP%RWSOVR, RWSOVRM - Solar time for model/radiation timesteps
+!            RCODECM, RSIDECM - Sine/cosine of solar declination
+!            YRERAD%LAverageSZA - Average solar zenith angle in time interval?
+!            YRRIP%TSTEP - Model timestep in seconds
+!            YRERAD%NRADFR - Radiation frequency in timesteps
+
+!     Method.
+!     -------
+!        Compute cosine of the solar zenith angle, mu0, from lat, lon
+!        and solar time using standard formula.  If
+!        YRERAD%LAverageSZA=FALSE then this is done at a single time,
+!        which is assumed to be the mid-point of either the model or
+!        the radiation timestep.  If YRERAD%LAverageSZA=TRUE then we
+!        compute the average over the model timestep exactly by first
+!        computing sunrise/sunset times. For radiation timesteps, mu0
+!        is to be used to compute the path length of the direct solar
+!        beam through the atmosphere, and the fluxes are subsequently
+!        weighted by mu0.  Therefore night-time values are not used,
+!        so we average mu0 only when the sun is above the horizon.
+
+!     Externals.
+!     ----------
+
+!     Reference.
+!     ----------
+!        ECMWF Research Department documentation of the IFS
+!
+!        See also: Zhou, L., M. Zhang, Q. Bao, and Y. Liu (2015), On
+!        the incident solar radiation in CMIP5
+!        models. Geophys. Res. Lett., 42, 1930–1935. doi:
+!        10.1002/2015GL063239.
+
+!     Author.
+!     -------
+!      Robin Hogan, ECMWF, May 2015
+
+!     Modifications:
+!     --------------
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+USE YOMHOOK  , ONLY : LHOOK, DR_HOOK
+USE YOMCST   , ONLY : RPI, RDAY
+! USE YOMRIP   , ONLY : YRRIP
+USE MODD_RADIATIONS_N , ONLY : XCOSDEL, XSINDEL, XZENITH ! no difference between yoerip and yomrip here
+! USE YOERIP   , ONLY : YRERIP
+USE MODD_PARAM_ECRAD_N  , ONLY : NRADFR, LCENTREDTIMESZA, LAVERAGESZA
+USE YOMLUN   , ONLY : NULOUT
+
+USE MODD_PARAM_RAD_n,  ONLY : XDTRAD
+USE MODD_RADIATIONS_n, ONLY : XSINDEL, XCOSDEL, XTSIDER
+USE MODD_TIME_n,       ONLY : TDTRAD_FULL
+USE MODD_DYN_n,       ONLY : XTSTEP
+
+!     ------------------------------------------------------------------
+
+IMPLICIT NONE
+
+INTEGER(KIND=JPIM),INTENT(IN) :: KSTART      ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KEND        ! Last column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KCOL        ! Number of columns in arrays
+REAL(KIND=JPRB),   INTENT(IN) :: PGEMU(KCOL) ! Sine of latitude
+REAL(KIND=JPRB),   INTENT(IN) :: PGELAM(KCOL)! Longitude in radians
+LOGICAL, INTENT(IN) :: LDRADIATIONTIMESTEP   ! Is this for a radiation timestep?
+REAL(KIND=JPRB),  INTENT(OUT) :: PMU0(KCOL)  ! Cosine of solar zenith angle
+
+! Solar time at the start and end of the time interval
+REAL(KIND=JPRB) :: ZSOLARTIMESTART, ZSOLARTIMEEND
+
+! The time of half a model/radiation timestep, in radians
+REAL(KIND=JPRB) :: ZHALFTIMESTEP
+
+! For efficiency we precompute sin(solar declination)*sin(latitude)
+REAL(KIND=JPRB) :: ZSINDECSINLAT(KSTART:KEND)
+!...and cos(solar declination)*cos(latitude)
+REAL(KIND=JPRB) :: ZCOSDECCOSLAT(KSTART:KEND)
+! ...and cosine of latitude
+REAL(KIND=JPRB) :: ZCOSLAT(KSTART:KEND)
+
+! Tangent of solar declination
+REAL(KIND=JPRB) :: ZTANDEC
+
+! Hour angles (=local solar time in radians plus pi)
+REAL(KIND=JPRB) :: ZHOURANGLESTART, ZHOURANGLEEND
+REAL(KIND=JPRB) :: ZHOURANGLESUNSET, ZCOSHOURANGLESUNSET
+
+INTEGER(KIND=JPIM) :: JCOL        ! Column index
+
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+REAL(KIND=JPRB) :: ZTIME,ZUT
+REAL(KIND=JPRB) :: ZTUT,ZSOLANG
+
+!     ------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('COS_SZA',0,ZHOOK_HANDLE)
+
+! An average solar zenith angle can only be computed if the solar time
+! is centred on the time interval
+IF (LAVERAGESZA .AND. .NOT. LCENTREDTIMESZA) THEN
+  WRITE(NULOUT,*) 'ERROR IN COS_SZA: LAverageSZA=TRUE but LCentredTimeSZA=FALSE'
+  CALL ABOR1('COS_SZA: ABOR1 CALLED')
+ENDIF
+
+DO JCOL = KSTART,KEND
+  ZCOSLAT(JCOL) = SQRT(1.0_JPRB - PGEMU(JCOL)**2)
+ENDDO
+
+! Computation of solar hour angle from sunposn
+ZTIME     = TDTRAD_FULL%TIME + 0.5*XDTRAD
+ZUT       = MOD( 24.0+MOD(ZTIME/3600.,24.0),24.0 )
+ZTUT = ZUT - XTSIDER
+ZSOLANG = (ZTUT-12.0)*15.0*(RPI/180.)          ! hour angle in radians
+
+IF (LDRADIATIONTIMESTEP) THEN
+  ! Compute the effective cosine of solar zenith angle for a radiation
+  ! timestep
+
+  ! Precompute quantities that may be used more than once
+  DO JCOL = KSTART,KEND
+    ZSINDECSINLAT(JCOL) = XSINDEL * PGEMU(JCOL)  ! this is the current declination, not that of radiation (averaged over time step)
+    ZCOSDECCOSLAT(JCOL) = XCOSDEL * ZCOSLAT(JCOL)
+  ENDDO
+
+  IF (.NOT. LAVERAGESZA) THEN
+    ! Original method: compute the value at the centre of the
+    ! radiation timestep (assuming that LCentredTimeSZA=TRUE - see
+    ! updtim.F90)
+    DO JCOL = KSTART,KEND
+      ! It would be more efficient to do it like this...
+      ! PMU0(JCOL)=MAX(0.0_JPRB, ZSinDecSinLat(JCOL) &
+      !      & - ZCosDecCosLat(JCOL) * COS(YRERIP%RWSOVRM + PGELAM(JCOL)))
+      ! ...but for bit reproducibility with previous cycle we do it
+      ! like this:
+      PMU0(JCOL) = MAX(0.0_JPRB, ZSINDECSINLAT(JCOL) &
+           & - XCOSDEL*COS(ZSOLANG)*ZCOSLAT(JCOL)*COS(PGELAM(JCOL)) &
+           & + XCOSDEL*SIN(ZSOLANG)*ZCOSLAT(JCOL)*SIN(PGELAM(JCOL)))
+    ENDDO
+
+  ELSE
+    ! Compute the average MU0 for the period of the radiation
+    ! timestep, excluding times when the sun is below the horizon
+
+    ! First compute the sine and cosine of the times of the start and
+    ! end of the radiation timestep
+    ZHALFTIMESTEP = XTSTEP * REAL(NRADFR) * RPI / RDAY
+    ZSOLARTIMESTART = ZSOLANG - ZHALFTIMESTEP
+    ZSOLARTIMEEND   = ZSOLANG + ZHALFTIMESTEP
+
+    ! Compute tangent of solar declination, with check in case someone
+    ! simulates a planet completely tipped over
+    ZTANDEC = XSINDEL / MAX(XCOSDEL, 1.0E-12)
+
+    DO JCOL = KSTART,KEND
+      ! Sunrise equation: cos(hour angle at sunset) =
+      ! -tan(declination)*tan(latitude)
+      ZCOSHOURANGLESUNSET = -ZTANDEC * PGEMU(JCOL) &
+           &              / MAX(ZCOSLAT(JCOL), 1.0E-12)
+      IF (ZCOSHOURANGLESUNSET > 1.0) THEN
+        ! Perpetual darkness
+        PMU0(JCOL) = 0.0_JPRB
+      ELSE
+        ! Compute hour angle at start and end of time interval,
+        ! ensuring that the hour angle of the centre of the time
+        ! window is in the range -PI to +PI (equivalent to ensuring
+        ! that local solar time = solar time + longitude is in the
+        ! range 0 to 2PI)
+        IF (ZSOLANG + PGELAM(JCOL) < 2.0_JPRB*RPI) THEN
+          ZHOURANGLESTART = ZSOLARTIMESTART + PGELAM(JCOL) - RPI
+          ZHOURANGLEEND   = ZSOLARTIMEEND   + PGELAM(JCOL) - RPI 
+        ELSE
+          ZHOURANGLESTART = ZSOLARTIMESTART + PGELAM(JCOL) - 3.0_JPRB*RPI
+          ZHOURANGLEEND   = ZSOLARTIMEEND   + PGELAM(JCOL) - 3.0_JPRB*RPI
+        ENDIF
+
+        IF (ZCOSHOURANGLESUNSET >= -1.0) THEN
+          ! Not perpetual daylight or perpetual darkness, so we need
+          ! to check for sunrise or sunset lying within the time
+          ! interval
+          ZHOURANGLESUNSET = ACOS(ZCOSHOURANGLESUNSET)
+          IF (ZHOURANGLEEND <= -ZHOURANGLESUNSET &
+               & .OR. ZHOURANGLESTART >= ZHOURANGLESUNSET) THEN
+            ! The time interval is either completely before sunrise or
+            ! completely after sunset
+            PMU0(JCOL) = 0.0_JPRB
+            CYCLE
+          ENDIF
+
+          ! Bound the start and end hour angles by sunrise and sunset
+          ZHOURANGLESTART = MAX(-ZHOURANGLESUNSET, &
+               &                MIN(ZHOURANGLESTART, ZHOURANGLESUNSET))
+          ZHOURANGLEEND   = MAX(-ZHOURANGLESUNSET, &
+               &                MIN(ZHOURANGLEEND,   ZHOURANGLESUNSET))
+        ENDIF
+
+        IF (ZHOURANGLEEND - ZHOURANGLESTART > 1.0E-8) THEN
+          ! Compute average MU0 in the interval ZHourAngleStart to
+          ! ZHourAngleEnd
+          PMU0(JCOL) = ZSINDECSINLAT(JCOL) &
+               & + (ZCOSDECCOSLAT(JCOL) &
+               &    * (SIN(ZHOURANGLEEND) - SIN(ZHOURANGLESTART))) &
+               & / (ZHOURANGLEEND - ZHOURANGLESTART)
+
+          ! Just in case...
+          IF (PMU0(JCOL) < 0.0_JPRB) THEN
+            PMU0(JCOL) = 0.0_JPRB
+          ENDIF
+        ELSE
+          ! Too close to sunrise/sunset for a reliable calculation
+          PMU0(JCOL) = 0.0_JPRB
+        ENDIF
+
+      ENDIF
+    ENDDO
+  ENDIF
+
+ELSE
+  ! Compute the cosine of solar zenith angle for a model timestep
+
+  ! Precompute quantities that may be used more than once
+  DO JCOL = KSTART,KEND
+    ZSINDECSINLAT(JCOL) = XSINDEL * PGEMU(JCOL)
+    ZCOSDECCOSLAT(JCOL) = XCOSDEL * ZCOSLAT(JCOL)
+  ENDDO
+
+  IF (.NOT. LAVERAGESZA) THEN
+    ! Original method: compute the value at the centre of the
+    ! model timestep
+    DO JCOL = KSTART,KEND
+      ! It would be more efficient to do it like this...
+      ! PMU0(JCOL) = MAX(0.0_JPRB, ZSinDecSinLat(JCOL)        &
+      !      & - ZCosDecCosLat(JCOL)*COS(YRRIP%RWSOVR + PGELAM(JCOL)))
+      ! ...but for bit reproducibility with previous cycle we do it
+      ! like this:
+      PMU0(JCOL) = MAX(0.0_JPRB, ZSINDECSINLAT(JCOL) &
+           & - XCOSDEL*COS(ZSOLANG)*ZCOSLAT(JCOL)*COS(PGELAM(JCOL)) &
+           & + XCOSDEL*SIN(ZSOLANG)*ZCOSLAT(JCOL)*SIN(PGELAM(JCOL)))
+    ENDDO
+
+  ELSE
+    ! Compute the average MU0 for the period of the model timestep
+
+    ! First compute the sine and cosine of the times of the start and
+    ! end of the model timestep
+    ZHALFTIMESTEP   = XTSTEP * RPI / RDAY
+    ZSOLARTIMESTART = ZSOLANG - ZHALFTIMESTEP
+    ZSOLARTIMEEND   = ZSOLANG + ZHALFTIMESTEP
+
+    ! Compute tangent of solar declination, with check in case someone
+    ! simulates a planet completely tipped over
+    ZTANDEC = XSINDEL / MAX(XCOSDEL, 1.0E-12)
+
+    DO JCOL = KSTART,KEND
+      ! Sunrise equation: cos(hour angle at sunset) =
+      ! -tan(declination)*tan(latitude)
+      ZCOSHOURANGLESUNSET = -ZTANDEC * PGEMU(JCOL) &
+           &              / MAX(ZCOSLAT(JCOL), 1.0E-12)
+      IF (ZCOSHOURANGLESUNSET > 1.0) THEN
+        ! Perpetual darkness
+        PMU0(JCOL) = 0.0_JPRB
+      ELSE
+        ! Compute hour angle at start and end of time interval,
+        ! ensuring that the hour angle of the centre of the time
+        ! window is in the range -PI to +PI (equivalent to ensuring
+        ! that local solar time = solar time + longitude is in the
+        ! range 0 to 2PI)
+        IF (ZSOLANG + PGELAM(JCOL) < 2.0_JPRB*RPI) THEN
+          ZHOURANGLESTART = ZSOLARTIMESTART + PGELAM(JCOL) - RPI
+          ZHOURANGLEEND   = ZSOLARTIMEEND   + PGELAM(JCOL) - RPI 
+        ELSE
+          ZHOURANGLESTART = ZSOLARTIMESTART + PGELAM(JCOL) - 3.0_JPRB*RPI
+          ZHOURANGLEEND   = ZSOLARTIMEEND   + PGELAM(JCOL) - 3.0_JPRB*RPI
+        ENDIF
+
+        IF (ZCOSHOURANGLESUNSET >= -1.0) THEN
+          ! Not perpetual daylight or perpetual darkness, so we need
+          ! to check for sunrise or sunset lying within the time
+          ! interval
+          ZHOURANGLESUNSET = ACOS(ZCOSHOURANGLESUNSET)
+          IF (ZHOURANGLEEND <= -ZHOURANGLESUNSET &
+               & .OR. ZHOURANGLESTART >= ZHOURANGLESUNSET) THEN
+            ! The time interval is either completely before sunrise or
+            ! completely after sunset
+            PMU0(JCOL) = 0.0_JPRB
+            CYCLE
+          ENDIF
+
+          ! Bound the start and end hour angles by sunrise and sunset
+          ZHOURANGLESTART = MAX(-ZHOURANGLESUNSET, &
+               &                MIN(ZHOURANGLESTART, ZHOURANGLESUNSET))
+          ZHOURANGLEEND   = MAX(-ZHOURANGLESUNSET, &
+               &                MIN(ZHOURANGLEEND,   ZHOURANGLESUNSET))
+        ENDIF
+
+        ! Compute average MU0 in the model timestep, although the
+        ! numerator considers only the time from ZHourAngleStart to
+        ! ZHourAngleEnd that the sun is above the horizon
+        PMU0(JCOL) = (ZSINDECSINLAT(JCOL) * (ZHOURANGLEEND-ZHOURANGLESTART)   &
+           & + ZCOSDECCOSLAT(JCOL)*(SIN(ZHOURANGLEEND)-SIN(ZHOURANGLESTART))) &
+           & / (2.0_JPRB * ZHALFTIMESTEP)
+
+        ! This shouldn't ever result in negative values, but just in
+        ! case
+        IF (PMU0(JCOL) < 0.0_JPRB) THEN
+          PMU0(JCOL) = 0.0_JPRB
+        ENDIF
+
+      ENDIF
+    ENDDO
+  ENDIF
+
+ENDIF
+
+
+!     ------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('COS_SZA',1,ZHOOK_HANDLE)
+END SUBROUTINE COS_SZA
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/ice_effective_radius.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/ice_effective_radius.F90
new file mode 100644
index 0000000000000000000000000000000000000000..8d078cca1e9be027612fc25162d4c1b1ff36ea82
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/ice_effective_radius.F90
@@ -0,0 +1,196 @@
+!      #################################
+       MODULE MODI_ICE_EFFECTIVE_RADIUS
+!      #################################
+INTERFACE
+
+SUBROUTINE ICE_EFFECTIVE_RADIUS &
+     & (KIDIA, KFDIA, KLON, KLEV, &
+     &  PPRESSURE, PTEMPERATURE, PCLOUD_FRAC, PQ_ICE, PQ_SNOW, PGEMU, &
+     &  PRE_UM)
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+! INPUT ARGUMENTS
+
+! *** Array dimensions and ranges
+INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA    ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA    ! End column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KLON     ! Number of columns
+INTEGER(KIND=JPIM),INTENT(IN) :: KLEV     ! Number of levels
+
+! *** Variables on model levels
+REAL(KIND=JPRB),   INTENT(IN) :: PPRESSURE(KLON,KLEV)    ! (Pa)
+REAL(KIND=JPRB),   INTENT(IN) :: PTEMPERATURE(KLON,KLEV) ! (K)
+REAL(KIND=JPRB),   INTENT(IN) :: PCLOUD_FRAC(KLON,KLEV)  ! (kg/kg)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_ICE(KLON,KLEV)       ! (kg/kg)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_SNOW(KLON,KLEV)      ! (kg/kg)
+
+! *** Single level variable
+REAL(KIND=JPRB),   INTENT(IN) :: PGEMU(KLON) ! Sine of latitude
+
+! OUTPUT ARGUMENT
+! Effective radius
+REAL(KIND=JPRB),  INTENT(OUT) :: PRE_UM(KLON,KLEV) ! (microns)
+
+END SUBROUTINE ICE_EFFECTIVE_RADIUS
+END INTERFACE
+END MODULE MODI_ICE_EFFECTIVE_RADIUS
+
+SUBROUTINE ICE_EFFECTIVE_RADIUS &
+     & (KIDIA, KFDIA, KLON, KLEV, &
+     &  PPRESSURE, PTEMPERATURE, PCLOUD_FRAC, PQ_ICE, PQ_SNOW, PGEMU, &
+     &  PRE_UM)
+     
+! ICE_EFFECTIVE_RADIUS
+!
+! PURPOSE
+! -------
+!   Calculate effective radius of ice clouds
+!
+! AUTHOR
+! ------
+!   Robin Hogan, ECMWF (using code extracted from radlswr.F90)
+!   Original: 2016-02-24
+!
+! MODIFICATIONS
+! -------------
+!
+!
+! -------------------------------------------------------------------
+USE PARKIND1 , ONLY : JPIM, JPRB
+USE YOMHOOK  , ONLY : LHOOK, DR_HOOK
+! USE YOERAD   , ONLY : YRERAD
+USE YOM_YGFL , ONLY : YGFL
+! USE YOECLDP  , ONLY : YRECLDP
+USE YOERDU   , ONLY : REPLOG, REPSCW
+USE YOMLUN   , ONLY : NULERR
+USE YOMCST   , ONLY : RD, RPI, RTT
+USE MODD_PARAM_ECRAD_n , ONLY : NRADIP
+! INPUT ARGUMENTS
+
+! *** Array dimensions and ranges
+INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA    ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA    ! End column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KLON     ! Number of columns
+INTEGER(KIND=JPIM),INTENT(IN) :: KLEV     ! Number of levels
+
+! *** Variables on model levels
+REAL(KIND=JPRB),   INTENT(IN) :: PPRESSURE(KLON,KLEV)    ! (Pa)
+REAL(KIND=JPRB),   INTENT(IN) :: PTEMPERATURE(KLON,KLEV) ! (K)
+REAL(KIND=JPRB),   INTENT(IN) :: PCLOUD_FRAC(KLON,KLEV)  ! (kg/kg)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_ICE(KLON,KLEV)       ! (kg/kg)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_SNOW(KLON,KLEV)      ! (kg/kg)
+
+! *** Single level variable
+REAL(KIND=JPRB),   INTENT(IN) :: PGEMU(KLON) ! Sine of latitude
+
+! OUTPUT ARGUMENT
+! Effective radius
+REAL(KIND=JPRB),  INTENT(OUT) :: PRE_UM(KLON,KLEV) ! (microns)
+
+! LOCAL VARIABLES
+
+REAL(KIND=JPRB) :: ZIWC_INCLOUD_GM3 ! In-cloud ice+snow water content in g m-3
+REAL(KIND=JPRB) :: ZAIR_DENSITY_GM3 ! Air density in g m-3
+
+REAL(KIND=JPRB) :: ZTEMPERATURE_C   ! Temperature, degrees Celcius
+REAL(KIND=JPRB) :: ZTEMP_FACTOR     ! Temperature, Kelvin minus 83.15
+REAL(KIND=JPRB) :: ZAIWC, ZBIWC     ! Factors in empirical relationship
+REAL(KIND=JPRB) :: ZDEFAULT_RE_UM   ! Default effective radius in microns 
+REAL(KIND=JPRB) :: ZDIAMETER_UM     ! Effective diameter in microns
+
+! Min effective diameter in microns; may vary with latitude
+REAL(KIND=JPRB) :: ZMIN_DIAMETER_UM(KLON)
+
+INTEGER :: JL, JK
+
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+! -------------------------------------------------------------------
+
+#include "abor1.intfb.h"
+
+! -------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('ICE_EFFECTIVE_RADIUS',0,ZHOOK_HANDLE)
+
+! -------------------------------------------------------------------
+SELECT CASE(NRADIP)
+CASE(0)
+  ! Ice effective radius fixed at 40 microns
+  PRE_UM(KIDIA:KFDIA,:) = 40.0_JPRB  
+
+CASE(1,2)
+  ! Ice effective radius from Liou and Ou (1994)
+  DO JK = 1,KLEV
+    DO JL = KIDIA,KFDIA
+      ! Convert Kelvin to Celcius, preventing positive numbers
+      ZTEMPERATURE_C = MIN(PTEMPERATURE(JL,JK) - RTT, -0.1)
+      ! Liou and Ou's empirical formula
+      PRE_UM(JL,JK) = 326.3_JPRB + ZTEMPERATURE_C * (12.42_JPRB &
+           &  + ZTEMPERATURE_C * (0.197_JPRB + ZTEMPERATURE_C * 0.0012_JPRB))
+      IF (NRADIP == 1) THEN
+        ! Original Liou and Ou (1994) bounds of 40-130 microns
+        PRE_UM(JL,JK) = MAX(PRE_UM(JL,JK), 40.0_JPRB)
+        PRE_UM(JL,JK) = MIN(PRE_UM(JL,JK),130.0_JPRB)
+      ELSE
+        ! Formulation following Jakob, Klein modifications to ice
+        ! content
+        PRE_UM(JL,JK) = MAX(PRE_UM(JL,JK), 30.0_JPRB)
+        PRE_UM(JL,JK) = MIN(PRE_UM(JL,JK), 60.0_JPRB)
+      ENDIF
+    ENDDO
+  ENDDO
+
+CASE(3)
+  ! Ice effective radius = f(T,IWC) from Sun and Rikus (1999), revised
+  ! by Sun (2001)
+
+  ! Default effective radius is computed from an effective diameter of
+  ! 80 microns; note that multiplying by re2de actually converts from
+  ! effective diameter to effective radius.
+  ZDEFAULT_RE_UM = 80.0_JPRB * XRE2DE
+
+  ! Minimum effective diameter may vary with latitude
+  IF (NMINICE == 0) THEN
+    ! Constant effective diameter
+    ZMIN_DIAMETER_UM(KIDIA:KFDIA) = XRMINICE
+  ELSE
+    ! Ice effective radius varies with latitude, smaller at poles
+    DO JL = KIDIA,KFDIA
+      ZMIN_DIAMETER_UM(JL) = 20.0_JPRB + (XRMINICE - 20.0_JPRB) &
+           &                          * COS(ASIN(PGEMU(JL)))
+    ENDDO
+  ENDIF
+
+  DO JK = 1,KLEV
+    DO JL = KIDIA,KFDIA
+      IF (PCLOUD_FRAC(JL,JK) > 0.001_JPRB &
+           &  .AND. (PQ_ICE(JL,JK)+PQ_SNOW(JL,JK)) > 0.0_JPRB) THEN
+        ZAIR_DENSITY_GM3 = 1000.0_JPRB * PPRESSURE(JL,JK) / (RD*PTEMPERATURE(JL,JK))
+        ZIWC_INCLOUD_GM3 = ZAIR_DENSITY_GM3 * (PQ_ICE(JL,JK) + PQ_SNOW(JL,JK)) &
+             &           / PCLOUD_FRAC(JL,JK)
+        ZTEMPERATURE_C = PTEMPERATURE(JL,JK) - RTT
+        ! Sun, 2001 (corrected from Sun & Rikus, 1999)
+        ZAIWC = 45.8966_JPRB * ZIWC_INCLOUD_GM3**0.2214_JPRB
+        ZBIWC = 0.7957_JPRB  * ZIWC_INCLOUD_GM3**0.2535_JPRB
+        ZDIAMETER_UM = (1.2351_JPRB + 0.0105_JPRB * ZTEMPERATURE_C) &
+             & * (ZAIWC + ZBIWC*(PTEMPERATURE(JL,JK) - 83.15_JPRB))
+        ZDIAMETER_UM = MIN ( MAX( ZDIAMETER_UM, ZMIN_DIAMETER_UM(JL)), 155.0_JPRB)
+        PRE_UM(JL,JK) = ZDIAMETER_UM * XRE2DE
+      ELSE
+        PRE_UM(JL,JK) = ZDEFAULT_RE_UM
+      ENDIF
+    ENDDO
+  ENDDO
+  
+CASE DEFAULT
+  WRITE(NULERR,'(A,I0,A)') 'ICE EFFECTIVE RADIUS OPTION NRADLP=',NRADIP,' NOT AVAILABLE'
+  CALL ABOR1('ERROR IN ICE_EFFECTIVE_RADIUS')
+
+END SELECT
+
+! -------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('ICE_EFFECTIVE_RADIUS',1,ZHOOK_HANDLE)
+  
+END SUBROUTINE ICE_EFFECTIVE_RADIUS
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/liquid_effective_radius.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/liquid_effective_radius.F90
new file mode 100644
index 0000000000000000000000000000000000000000..7a1348ad92996ce8ca3a900ed37b7914994ac00f
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/liquid_effective_radius.F90
@@ -0,0 +1,300 @@
+MODULE MODI_LIQUID_EFFECTIVE_RADIUS
+
+INTERFACE
+
+SUBROUTINE LIQUID_EFFECTIVE_RADIUS &
+     & (KIDIA, KFDIA, KLON, KLEV, &
+     &  PPRESSURE, PTEMPERATURE, PCLOUD_FRAC, PQ_LIQ, PQ_RAIN, &
+     &  PLAND_FRAC, PCCN_LAND, PCCN_SEA, &
+     &  PRE_UM)
+
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+
+
+! INPUT ARGUMENTS
+
+! *** Array dimensions and ranges
+INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA    ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA    ! End column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KLON     ! Number of columns
+INTEGER(KIND=JPIM),INTENT(IN) :: KLEV     ! Number of levels
+
+! *** Variables on model levels
+REAL(KIND=JPRB),   INTENT(IN) :: PPRESSURE(KLON,KLEV)    ! (Pa)
+REAL(KIND=JPRB),   INTENT(IN) :: PTEMPERATURE(KLON,KLEV) ! (K)
+REAL(KIND=JPRB),   INTENT(IN) :: PCLOUD_FRAC(KLON,KLEV)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_LIQ(KLON,KLEV)       ! (kg/kg)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_RAIN(KLON,KLEV)      ! (kg/kg)
+
+! *** Single-level variables 
+REAL(KIND=JPRB),   INTENT(IN) :: PLAND_FRAC(KLON)        ! 1=land, 0=sea
+REAL(KIND=JPRB),   INTENT(IN) :: PCCN_LAND(KLON)
+REAL(KIND=JPRB),   INTENT(IN) :: PCCN_SEA(KLON)
+
+! OUTPUT ARGUMENT
+
+! Effective radius
+REAL(KIND=JPRB),  INTENT(OUT) :: PRE_UM(KLON,KLEV) ! (microns)
+
+END SUBROUTINE LIQUID_EFFECTIVE_RADIUS
+END INTERFACE
+END MODULE MODI_LIQUID_EFFECTIVE_RADIUS
+
+SUBROUTINE LIQUID_EFFECTIVE_RADIUS &
+     & (KIDIA, KFDIA, KLON, KLEV, &
+     &  PPRESSURE, PTEMPERATURE, PCLOUD_FRAC, PQ_LIQ, PQ_RAIN, &
+     &  PLAND_FRAC, PCCN_LAND, PCCN_SEA, &
+     &  PRE_UM)
+
+! LIQUID_EFFECTIVE_RADIUS
+!
+! PURPOSE
+! -------
+!   Calculate effective radius of liquid clouds
+!
+! AUTHOR
+! ------
+!   Robin Hogan, ECMWF (using code extracted from radlswr.F90)
+!   Original: 2015-09-24
+!
+! MODIFICATIONS
+! -------------
+!
+!
+! -------------------------------------------------------------------
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+USE YOMHOOK  , ONLY : LHOOK, DR_HOOK
+!USE YOERAD   , ONLY : YRERAD
+USE MODD_PARAM_ECRAD_n , ONLY : NRADLP, NAERMACC, NMCVAR, XCCNSEA, XCCNLND, NAERCLD, &
+                            &   NACTAERO, LCCNO, LCCNL
+
+USE YOM_YGFL , ONLY : YGFL
+! USE YOECLDP  , ONLY : YRECLDP
+USE YOERDU   , ONLY : REPLOG, REPSCW
+USE YOMLUN   , ONLY : NULERR
+USE YOMCST   , ONLY : RD, RPI
+
+! -------------------------------------------------------------------
+
+IMPLICIT NONE
+
+! INPUT ARGUMENTS
+
+! *** Array dimensions and ranges
+INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA    ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA    ! End column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KLON     ! Number of columns
+INTEGER(KIND=JPIM),INTENT(IN) :: KLEV     ! Number of levels
+
+! *** Variables on model levels
+REAL(KIND=JPRB),   INTENT(IN) :: PPRESSURE(KLON,KLEV)    ! (Pa)
+REAL(KIND=JPRB),   INTENT(IN) :: PTEMPERATURE(KLON,KLEV) ! (K)
+REAL(KIND=JPRB),   INTENT(IN) :: PCLOUD_FRAC(KLON,KLEV)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_LIQ(KLON,KLEV)       ! (kg/kg)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_RAIN(KLON,KLEV)      ! (kg/kg)
+
+! *** Single-level variables 
+REAL(KIND=JPRB),   INTENT(IN) :: PLAND_FRAC(KLON)        ! 1=land, 0=sea
+REAL(KIND=JPRB),   INTENT(IN) :: PCCN_LAND(KLON)
+REAL(KIND=JPRB),   INTENT(IN) :: PCCN_SEA(KLON)
+
+! OUTPUT ARGUMENT
+
+! Effective radius
+REAL(KIND=JPRB),  INTENT(OUT) :: PRE_UM(KLON,KLEV) ! (microns)
+
+! PARAMETERS
+
+! Minimum and maximum effective radius, in microns
+REAL(KIND=JPRB), PARAMETER :: PP_MIN_RE_UM =  4.0_JPRB
+REAL(KIND=JPRB), PARAMETER :: PP_MAX_RE_UM = 30.0_JPRB
+
+! LOCAL VARIABLES
+INTEGER :: IRADLP ! ID of effective radius scheme to use
+INTEGER :: NACTIVE_AEROSOL ! Number of active aerosol
+REAL(KIND=JPRB) :: ZCCN    ! CCN concentration (units?)
+
+REAL(KIND=JPRB) :: ZSPECTRAL_DISPERSION
+REAL(KIND=JPRB) :: ZNTOT_CM3 ! Number conc in cm-3
+REAL(KIND=JPRB) :: ZRE_CUBED
+REAL(KIND=JPRB) :: ZLWC_GM3, ZRWC_GM3 ! In-cloud liquid, rain content in g m-3
+REAL(KIND=JPRB) :: ZAIR_DENSITY_GM3   ! Air density in g m-3
+REAL(KIND=JPRB) :: ZRAIN_RATIO        ! Ratio of rain to liquid water content
+REAL(KIND=JPRB) :: ZWOOD_FACTOR, ZRATIO
+REAL(KIND=JPRB) :: ZNUM, ZDEN, ZNTOT,ZD
+
+INTEGER :: JL, JK
+
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+! -------------------------------------------------------------------
+
+#include "abor1.intfb.h"
+
+! -------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('LIQUID_EFFECTIVE_RADIUS',0,ZHOOK_HANDLE)
+
+! -------------------------------------------------------------------
+
+! Reproduce logic from RADLSWR
+NACTIVE_AEROSOL = NACTAERO
+IF (NACTAERO == 0 .AND. NAERMACC == 1) NACTIVE_AEROSOL = NMCVAR
+IRADLP = NRADLP
+IF (NACTIVE_AEROSOL >= 12 .AND. NAERCLD > 0 ) IRADLP=3 
+
+SELECT CASE(IRADLP)
+CASE(0)
+  ! Very old parameterization as a function of pressure, used in ERA-15
+  PRE_UM(KIDIA:KFDIA,:) = 10.0_JPRB &
+       &  + (100000.0_JPRB-PPRESSURE(KIDIA:KFDIA,:))*3.5_JPRB
+  
+CASE(1)
+  ! Simple distinction between land (10um) and ocean (13um) by Zhang
+  ! and Rossow
+  DO JL = KIDIA,KFDIA
+    IF (PLAND_FRAC(JL) < 0.5_JPRB) THEN
+      PRE_UM(JL,:) = 13.0_JPRB
+    ELSE
+      PRE_UM(JL,:) = 10.0_JPRB
+    ENDIF
+  ENDDO
+  
+CASE(2)
+  ! Martin et al. (JAS 1994)
+  ! Old ECMWF version
+  DO JL = KIDIA,KFDIA 
+    IF (PLAND_FRAC(JL) < 0.5_JPRB) THEN
+        ZCCN=150.
+        ZD=0.33
+        ZNTOT=-1.15E-03*ZCCN*ZCCN+0.963*ZCCN+5.30
+    ELSE
+        ZCCN=900.
+        ZD=0.43
+        ZNTOT=-2.10E-04*ZCCN*ZCCN+0.568*ZCCN-27.9
+    ENDIF
+    
+   ! Only consider cloudy regions
+    DO JK = 1,KLEV
+        IF (PCLOUD_FRAC(JL,JK) >= 0.001_JPRB &
+            &  .AND. (PQ_LIQ(JL,JK)+PQ_RAIN(JL,JK)) > 0.0_JPRB) THEN
+
+            ! Compute liquid and rain water contents
+            ZAIR_DENSITY_GM3 = 1000.0_JPRB * PPRESSURE(JL,JK) &
+                    &           / (RD*PTEMPERATURE(JL,JK))
+            ! In-cloud mean water contents found by dividing by cloud
+            ! fraction
+            ZLWC_GM3 = ZAIR_DENSITY_GM3 * PQ_LIQ(JL,JK)  / PCLOUD_FRAC(JL,JK)
+            ZRWC_GM3 = ZAIR_DENSITY_GM3 * PQ_RAIN(JL,JK) / PCLOUD_FRAC(JL,JK)
+    
+            ZNUM=3.*(ZLWC_GM3+ZRWC_GM3)*(1.+3.*ZD*ZD)**2 ! conversion mixing ratio into LWC
+            ZDEN=4.*RPI*ZNTOT*(1.+ZD*ZD)**3
+            PRE_UM(JL,JK) =100.*(ZNUM/ZDEN)**0.333
+            PRE_UM(JL,JK)=MAX(PRE_UM(JL,JK), 4.)
+            PRE_UM(JL,JK)=MIN(PRE_UM(JL,JK),16.)
+        ENDIF
+    ENDDO  
+    
+  ENDDO 
+! print*, "PRE_UM"
+! print*, PRE_UM 
+! pause
+! 
+! print*, "PQ_LIQ+PQ_RAIN"
+! print*, PQ_LIQ+PQ_RAIN
+! pause 
+
+ 
+CASE(3) 
+ ! Improved version in ECRAD
+  DO JL = KIDIA,KFDIA
+    ! First compute the cloud droplet concentration
+    IF (PLAND_FRAC(JL) < 0.5_JPRB) THEN
+      ! Sea case
+      IF (LCCNO) THEN
+        ZCCN = PCCN_SEA(JL)
+      ELSE
+        ZCCN = XCCNSEA
+      ENDIF
+      ZSPECTRAL_DISPERSION = 0.77_JPRB
+      ! Cloud droplet concentration in cm-3 (activated CCN) over
+      ! ocean
+      ZNTOT_CM3 = -1.15E-03_JPRB*ZCCN*ZCCN + 0.963_JPRB*ZCCN + 5.30_JPRB
+    ELSE
+      ! Land case
+      IF (LCCNL) THEN 
+        ZCCN=PCCN_LAND(JL)
+      ELSE  
+        ZCCN=XCCNLND
+      ENDIF
+      ZSPECTRAL_DISPERSION = 0.69_JPRB
+      ! Cloud droplet concentration in cm-3 (activated CCN) over
+      ! land
+      ZNTOT_CM3 = -2.10E-04_JPRB*ZCCN*ZCCN + 0.568_JPRB*ZCCN - 27.9_JPRB
+    ENDIF
+    
+    ZRATIO = (0.222_JPRB/ZSPECTRAL_DISPERSION)**0.333_JPRB
+    
+    DO JK = 1,KLEV
+
+      ! Only consider cloudy regions
+      IF (PCLOUD_FRAC(JL,JK) >= 0.001_JPRB &
+           &  .AND. (PQ_LIQ(JL,JK)+PQ_RAIN(JL,JK)) > 0.0_JPRB) THEN
+
+        ! Compute liquid and rain water contents
+        ZAIR_DENSITY_GM3 = 1000.0_JPRB * PPRESSURE(JL,JK) &
+             &           / (RD*PTEMPERATURE(JL,JK))
+        ! In-cloud mean water contents found by dividing by cloud
+        ! fraction
+        ZLWC_GM3 = ZAIR_DENSITY_GM3 * PQ_LIQ(JL,JK)  / PCLOUD_FRAC(JL,JK)
+        ZRWC_GM3 = ZAIR_DENSITY_GM3 * PQ_RAIN(JL,JK) / PCLOUD_FRAC(JL,JK)
+      
+        ! Wood's (2000, eq. 19) adjustment to Martin et al's
+        ! parameterization
+        IF (ZLWC_GM3 > REPSCW) THEN
+          ZRAIN_RATIO = ZRWC_GM3 / ZLWC_GM3
+          ZWOOD_FACTOR = ((1.0_JPRB + ZRAIN_RATIO)**0.666_JPRB) &
+               &     / (1.0_JPRB + 0.2_JPRB * ZRATIO*ZRAIN_RATIO)
+        ELSE
+          ZWOOD_FACTOR = 1.0_JPRB
+        ENDIF
+      
+        ! g m-3 and cm-3 units cancel out with density of water
+        ! 10^6/(1000*1000); need a factor of 10^6 to convert to
+        ! microns and cubed root is factor of 100 which appears in
+        ! equation below
+        ZRE_CUBED = (3.0_JPRB * (ZLWC_GM3 + ZRWC_GM3)) &
+             &    / (4.0_JPRB*RPI*ZNTOT_CM3*ZSPECTRAL_DISPERSION)
+        IF (ZRE_CUBED > REPLOG) THEN
+          PRE_UM(JL,JK) = ZWOOD_FACTOR*100.0_JPRB*EXP(0.333_JPRB*LOG(ZRE_CUBED))
+          ! Make sure effective radius is bounded in range 4-30 microns
+          PRE_UM(JL,JK) = MAX(PP_MIN_RE_UM, MIN(PRE_UM(JL,JK), PP_MAX_RE_UM))
+        ELSE
+          PRE_UM(JL,JK) = PP_MIN_RE_UM
+        ENDIF
+
+      ELSE
+        ! Cloud fraction or liquid+rain water content too low to
+        ! consider this a cloud
+        PRE_UM(JL,JK) = PP_MIN_RE_UM
+
+      ENDIF
+
+    ENDDO
+    
+  ENDDO
+  
+
+  
+CASE DEFAULT
+  WRITE(NULERR,'(A,I0,A)') 'LIQUID EFFECTIVE RADIUS OPTION IRADLP=',IRADLP,' NOT AVAILABLE'
+  CALL ABOR1('ERROR IN LIQUID_EFFECTIVE_RADIUS')
+END SELECT
+
+! -------------------------------------------------------------------
+
+IF (LHOOK) CALL DR_HOOK('LIQUID_EFFECTIVE_RADIUS',1,ZHOOK_HANDLE)
+  
+END SUBROUTINE LIQUID_EFFECTIVE_RADIUS
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/radiation_scheme.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/radiation_scheme.F90
new file mode 100644
index 0000000000000000000000000000000000000000..e33efcc997adf884a0ff00b69bf8300c17a276ae
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/radiation_scheme.F90
@@ -0,0 +1,621 @@
+!MNH_LIC Copyright 1994-2014 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.
+!-----------------------------------------------------------------
+!--------------- special set of characters for RCS information
+!-----------------------------------------------------------------
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ecmwf_radiation_vers2.f90,v $ $Revision: 1.3.2.4.2.2.2.1 $
+! masdev4_7 BUG1 2007/06/15 17:47:17
+!-----------------------------------------------------------------
+!      #################################
+       MODULE MODI_RADIATION_SCHEME
+!      #################################
+
+CONTAINS
+
+SUBROUTINE RADIATION_SCHEME &
+     & (KIDIA, KFDIA, KLON, KLEV, KAEROSOL, &
+     &  PSOLAR_IRRADIANCE, &
+     &  PMU0, PTEMPERATURE_SKIN, PALBEDO_DIF, PALBEDO_DIR, &
+     &  PEMIS, PEMIS_WINDOW, &
+     &  PCCN_LAND, PCCN_SEA, &
+     &  PGELAM, PGEMU, PLAND_SEA_MASK, &
+     &  PPRESSURE, PTEMPERATURE, &
+     &  PPRESSURE_H, PTEMPERATURE_H, &
+     &  PQ, PCO2, PCH4, PN2O, PNO2, PCFC11, PCFC12, PHCFC22, PCCL4, PO3_DP, &
+     &  PCLOUD_FRAC, PQ_LIQUID, PQ_ICE, PQ_RAIN, PQ_SNOW, &
+     &  PAEROSOL_OLD, PAEROSOL, &
+     &  PFLUX_SW, PFLUX_LW, PFLUX_SW_CLEAR, PFLUX_LW_CLEAR, &
+     &  PFLUX_SW_SURF, PFLUX_LW_SURF, PFLUX_SW_SURF_CLEAR, PFLUX_LW_SURF_CLEAR, &
+     &  PFLUX_DIR_SURF, PFLUX_DIR_SURF_CLEAR, PFLUX_DIR_SURF_INTO_SUN, &
+     &  PFLUX_UV, PFLUX_PAR, PFLUX_PAR_CLEAR, &
+     &  PFLUX_SW_DN_TOA,PFLUX_SW_UP_TOA,PFLUX_LW_UP_TOA, &
+     &  PFLUX_SW_UP_TOA_CLEAR,PFLUX_LW_UP_TOA_CLEAR, &
+     &  PFLUX_SW_DN, PFLUX_LW_DN, PFLUX_SW_UP, PFLUX_LW_UP, &
+     &  PFLUX_SW_DN_CLEAR, PFLUX_LW_DN_CLEAR, PFLUX_SW_UP_CLEAR, PFLUX_LW_UP_CLEAR, &
+     &  PRE_LIQUID_UM, PRE_ICE_UM, &
+     &  PEMIS_OUT, PLWDERIVATIVE, &
+     &  PSWDIFFUSEBAND, PSWDIRECTBAND)
+
+! RADIATION_SCHEME - Interface to modular radiation scheme
+!
+! PURPOSE
+! -------
+!   The modular radiation scheme is contained in a separate
+!   library. This routine puts the the IFS arrays into appropriate
+!   objects, computing the additional data that is required, and sends
+!   it to the radiation scheme.  It returns net fluxes and surface
+!   flux components needed by the rest of the model. 
+!
+!   Lower case is used for variables and types taken from the
+!   radiation library
+!
+! INTERFACE
+! ---------
+!    RADIATION_SCHEME is called from RADLSWR. The
+!    SETUP_RADIATION_SCHEME routine (in the RADIATION_SETUP module)
+!    should have been run first.
+!
+! AUTHOR
+! ------
+!   Robin Hogan, ECMWF
+!   Original: 2015-09-16
+!
+! MODIFICATIONS
+! -------------
+!
+! TO DO
+! -----
+!
+!-----------------------------------------------------------------------
+
+! Modules from ifs or ifsaux libraries
+USE PARKIND1 , ONLY : JPIM, JPRB
+USE YOMHOOK  , ONLY : LHOOK, DR_HOOK
+! USE YOERAD   , ONLY : YRERAD ! does not exist in MNH
+
+! MNH
+USE MODD_PARAM_ECRAD_n, ONLY : NAERMACC, NDECOLAT, XCLOUD_FRAC_STD,  &  ! replace YRERAD to get attributes
+                            &  LAPPROXLWUPDATE, LAPPROXSWUPDATE
+USE MODD_RADIATIONS_n , ONLY : NSWB_MNH,NSWB_OLD                         
+USE MODE_THERMO ! , ONLY QSATW_2D
+USE MODD_DYN_n , ONLY : XTSTEP, NSTOP
+USE MODD_TIME , ONLY : TDTEXP
+USE MODD_TIME_n , ONLY : TDTMOD,TDTCUR
+USE MODI_ICE_EFFECTIVE_RADIUS
+USE MODI_LIQUID_EFFECTIVE_RADIUS
+USE MODI_CLOUD_OVERLAP_DECORR_LEN
+! MNH
+
+USE RADIATION_SETUP, ONLY : rad_config, &
+     &  NWEIGHT_UV,  IBAND_UV,  WEIGHT_UV, &
+     &  NWEIGHT_PAR, IBAND_PAR, WEIGHT_PAR, &
+     &  ITYPE_TROP_BG_AER,  TROP_BG_AER_MASS_EXT, &
+     &  ITYPE_STRAT_BG_AER, STRAT_BG_AER_MASS_EXT
+     
+! USE YOMRIP0  , ONLY : NINDAT ! does not exist in MNH
+! USE YOMCT3   , ONLY : NSTEP  ! does not exist in MNH
+! USE YOMRIP   , ONLY : YRRIP  ! does not exist in MNH
+USE YOMCST   , ONLY : RSIGMA ! Stefan-Boltzmann constant
+
+
+! Modules from radiation library
+USE radiation_single_level,   ONLY : single_level_type
+USE radiation_thermodynamics, ONLY : thermodynamics_type
+USE radiation_gas
+USE radiation_cloud,          ONLY : cloud_type
+USE radiation_aerosol,        ONLY : aerosol_type
+USE radiation_flux,           ONLY : flux_type
+USE radiation_interface,      ONLY : radiation, set_gas_units
+USE radiation_save,           ONLY : save_inputs
+
+IMPLICIT NONE
+
+! INPUT ARGUMENTS
+
+! *** Array dimensions and ranges
+INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA    ! Start column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA    ! End column to process
+INTEGER(KIND=JPIM),INTENT(IN) :: KLON     ! Number of columns
+INTEGER(KIND=JPIM),INTENT(IN) :: KLEV     ! Number of levels
+INTEGER(KIND=JPIM),INTENT(IN) :: KAEROSOL ! Number of aerosol types
+
+! *** Single-level fields
+REAL(KIND=JPRB),   INTENT(IN) :: PSOLAR_IRRADIANCE ! (W m-2)
+REAL(KIND=JPRB),   INTENT(IN) :: PMU0(KLON) ! Cosine of solar zenith ang
+REAL(KIND=JPRB),   INTENT(IN) :: PTEMPERATURE_SKIN(KLON) ! (K)
+! Diffuse and direct components of surface shortwave albedo
+REAL(KIND=JPRB),   INTENT(IN) :: PALBEDO_DIF(KLON,NSWB_OLD)
+REAL(KIND=JPRB),   INTENT(IN) :: PALBEDO_DIR(KLON,NSWB_OLD)
+! Longwave emissivity outside and inside the window region
+REAL(KIND=JPRB),   INTENT(IN) :: PEMIS(KLON)
+REAL(KIND=JPRB),   INTENT(IN) :: PEMIS_WINDOW(KLON)
+! Longitude (radians), sine of latitude
+REAL(KIND=JPRB),   INTENT(IN) :: PGELAM(KLON)
+REAL(KIND=JPRB),   INTENT(IN) :: PGEMU(KLON)
+! Land-sea mask
+REAL(KIND=JPRB),   INTENT(IN) :: PLAND_SEA_MASK(KLON) 
+
+! *** Variables on full levels
+REAL(KIND=JPRB),   INTENT(IN) :: PPRESSURE(KLON,KLEV)    ! (Pa)
+REAL(KIND=JPRB),   INTENT(IN) :: PTEMPERATURE(KLON,KLEV) ! (K)
+! *** Variables on half levels
+REAL(KIND=JPRB),   INTENT(IN) :: PPRESSURE_H(KLON,KLEV+1)    ! (Pa)
+REAL(KIND=JPRB),   INTENT(IN) :: PTEMPERATURE_H(KLON,KLEV+1) ! (K)
+
+! *** Gas mass mixing ratios on full levels
+REAL(KIND=JPRB),   INTENT(IN) :: PQ(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PCO2(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PCH4(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PN2O(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PNO2(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PCFC11(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PCFC12(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PHCFC22(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PCCL4(KLON,KLEV) 
+REAL(KIND=JPRB),   INTENT(IN) :: PO3_DP(KLON,KLEV) ! (Pa*kg/kg) !
+
+! *** Cloud fraction and hydrometeor mass mixing ratios
+REAL(KIND=JPRB),   INTENT(IN) :: PCLOUD_FRAC(KLON,KLEV)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_LIQUID(KLON,KLEV)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_ICE(KLON,KLEV)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_RAIN(KLON,KLEV)
+REAL(KIND=JPRB),   INTENT(IN) :: PQ_SNOW(KLON,KLEV)
+
+! *** Aerosol mass mixing ratios
+REAL(KIND=JPRB),   INTENT(IN) :: PAEROSOL_OLD(KLON,6,KLEV) ! Tegen in optical thickness at 550 nm
+REAL(KIND=JPRB),   INTENT(IN) :: PAEROSOL(KLON,KLEV,KAEROSOL)
+
+REAL(KIND=JPRB),   INTENT(IN) :: PCCN_LAND(KLON) 
+REAL(KIND=JPRB),   INTENT(IN) :: PCCN_SEA(KLON) 
+
+! OUTPUT ARGUMENTS
+
+! *** Net fluxes on half-levels (W m-2)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW(KLON,KLEV+1) 
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW(KLON,KLEV+1) 
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_CLEAR(KLON,KLEV+1) 
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_CLEAR(KLON,KLEV+1) 
+
+! *** Surface flux components (W m-2)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_SURF(KLON,NSWB_MNH) 
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_SURF(KLON) 
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_SURF_CLEAR(KLON,NSWB_MNH)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_SURF_CLEAR(KLON)
+! Direct component of surface flux into horizontal plane
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_DIR_SURF(KLON,NSWB_MNH)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_DIR_SURF_CLEAR(KLON,NSWB_MNH)
+! As PFLUX_DIR but into a plane perpendicular to the sun
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_DIR_SURF_INTO_SUN(KLON,NSWB_MNH)
+
+! *** Ultraviolet and photosynthetically active radiation (W m-2)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_UV(KLON)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_PAR(KLON)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_PAR_CLEAR(KLON)
+
+! *** Other single-level diagnostics
+! Top-of-atmosphere fluxes (W m-2)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_DN_TOA(KLON)
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_UP_TOA(KLON) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_UP_TOA(KLON) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_UP_TOA_CLEAR(KLON) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_UP_TOA_CLEAR(KLON) ! QL
+
+! Total fluxes - QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_DN(KLON,KLEV+1) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_DN(KLON,KLEV+1) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_DN_CLEAR(KLON,KLEV+1) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_DN_CLEAR(KLON,KLEV+1) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_UP(KLON,KLEV+1) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_UP(KLON,KLEV+1) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_SW_UP_CLEAR(KLON,KLEV+1) ! QL
+REAL(KIND=JPRB),  INTENT(OUT) :: PFLUX_LW_UP_CLEAR(KLON,KLEV+1) ! QL
+
+! Cloud effective radii in microns
+REAL(KIND=JPRB),  INTENT(OUT) :: PRE_LIQUID_UM(KLON,KLEV)
+REAL(KIND=JPRB),  INTENT(OUT) :: PRE_ICE_UM(KLON,KLEV)
+
+! Diagnosed longwave surface emissivity across the whole spectrum
+REAL(KIND=JPRB),  INTENT(OUT) :: PEMIS_OUT(KLON)   
+
+! Partial derivative of total-sky longwave upward flux at each level
+! with respect to upward flux at surface, used to correct heating
+! rates at gridpoints/timesteps between calls to the full radiation
+! scheme.  Note that this version uses the convention of level index
+! increasing downwards, unlike the local variable ZLwDerivative that
+! is returned from the LW radiation scheme.
+REAL(KIND=JPRB),  INTENT(OUT) :: PLWDERIVATIVE(KLON,KLEV+1)
+
+! Surface diffuse and direct downwelling shortwave flux in each
+! shortwave albedo band, used in RADINTG to update the surface fluxes
+! accounting for high-resolution albedo information
+REAL(KIND=JPRB),  INTENT(OUT) :: PSWDIFFUSEBAND(KLON,NSWB_MNH)
+REAL(KIND=JPRB),  INTENT(OUT) :: PSWDIRECTBAND (KLON,NSWB_MNH)
+
+! LOCAL VARIABLES
+TYPE(single_level_type)   :: single_level
+TYPE(thermodynamics_type) :: thermodynamics
+TYPE(gas_type)            :: gas
+TYPE(cloud_type)          :: cloud
+TYPE(aerosol_type)        :: aerosol
+TYPE(flux_type)           :: flux
+
+! Mass mixing ratio of ozone (kg/kg)
+REAL(KIND=JPRB)           :: ZO3(KLON,KLEV)
+
+! Cloud overlap decorrelation length for cloud boundaries in km
+REAL(KIND=JPRB)           :: ZDECORR_LEN_KM(KLON)
+
+! Ratio of cloud overlap decorrelation length for cloud water
+! inhomogeneities to that for cloud boundaries (typically 0.5)
+REAL(KIND=JPRB)           :: ZDECORR_LEN_RATIO
+
+! The surface net longwave flux if the surface was a black body, used
+! to compute the effective broadband surface emissivity
+REAL(KIND=JPRB)           :: ZBLACK_BODY_NET_LW(KIDIA:KFDIA)
+
+! Layer mass in kg m-2
+REAL(KIND=JPRB)           :: ZLAYER_MASS(KIDIA:KFDIA,KLEV)
+
+! Time integers
+INTEGER :: ITIM, IDAY
+
+! Loop indices
+INTEGER :: JLON, JLEV, JBAND, JB_ALBEDO, JAER
+
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+
+
+! Import time functions for iseed calculation
+!#include "../include/fcttim.func.h"
+! #include "liquid_effective_radius.intfb.h"
+! #include "ice_effective_radius.intfb.h"
+! #include "cloud_overlap_decorr_len.intfb.h"
+
+! PRINT*,"RADIATION_SCHEME"
+
+IF (LHOOK) CALL DR_HOOK('RADIATION_SCHEME',0,ZHOOK_HANDLE)
+
+! Allocate memory in radiation objects
+CALL single_level%allocate(KLON, NSWB_OLD, 2, &                ! ncol, nalbedobands, nemisbands
+     &                     use_sw_albedo_direct=.TRUE.)        ! mu0, tskin, albedo, emiss, seed for McICA 
+CALL thermodynamics%allocate(KLON, KLEV, use_h2o_sat=.true.)   ! p, t, qsat; hlevel, nlev+1
+CALL gas%allocate(KLON, KLEV)                                  ! mixing ratios
+CALL cloud%allocate(KLON, KLEV)                                ! ql, qi, radl, radi, clfr, cw-sig, covlp
+IF (NAERMACC > 0) THEN
+  CALL aerosol%allocate(KLON, 1, KLEV, KAEROSOL) ! MACC climatology
+ELSE
+  CALL aerosol%allocate(KLON, 1, KLEV, 6) ! Tegen climatology  ! mixing ratios per class
+ENDIF
+CALL flux%allocate(rad_config, 1, KLON, KLEV)                  ! output fluxes depend on config; cloud cover
+                                                               ! do_lw and do_sw set to .true. ?
+                                                               
+! Set thermodynamic profiles: simply copy over the half-level
+! pressure and temperature
+thermodynamics%pressure_hl   (KIDIA:KFDIA,:) = PPRESSURE_H   (KIDIA:KFDIA,:)
+thermodynamics%temperature_hl(KIDIA:KFDIA,:) = PTEMPERATURE_H(KIDIA:KFDIA,:)
+
+! IFS currently sets the half-level temperature at the surface to be
+! equal to the skin temperature. The radiation scheme takes as input
+! only the half-level temperatures and assumes the Planck function to
+! vary linearly in optical depth between half levels. In the lowest
+! atmospheric layer, where the atmospheric temperature can be much
+! cooler than the skin temperature, this can lead to significant
+! differences between the effective temperature of this lowest layer
+! and the true value in the model.
+!
+! We may approximate the temperature profile in the lowest model level
+! as piecewise linear between the top of the layer T[k-1/2], the
+! centre of the layer T[k] and the base of the layer Tskin.  The mean
+! temperature of the layer is then 0.25*T[k-1/2] + 0.5*T[k] +
+! 0.25*Tskin, which can be achieved by setting the atmospheric
+! temperature at the half-level corresponding to the surface as
+! follows:
+thermodynamics%temperature_hl(KIDIA:KFDIA,KLEV+1) &
+     &  = PTEMPERATURE(KIDIA:KFDIA,KLEV) &
+     &  + 0.5_JPRB * (PTEMPERATURE_H(KIDIA:KFDIA,KLEV+1) &
+     &               -PTEMPERATURE_H(KIDIA:KFDIA,KLEV))
+
+! Alternatively we respect the model's atmospheric temperature in the
+! lowest model level by setting the temperature at the lowest
+! half-level such that the mean temperature of the layer is correct:
+!thermodynamics%temperature_hl(KIDIA:KFDIA,KLEV+1) &
+!     &  = 2.0_JPRB * PTEMPERATURE(KIDIA:KFDIA,KLEV) &
+!     &             - PTEMPERATURE_H(KIDIA:KFDIA,KLEV)
+
+! Compute saturation specific humidity, used to hydrate aerosols. The
+! "2" for the last argument indicates that the routine is not being
+! called from within the convection scheme.
+!CALL SATUR(KIDIA, KFDIA, KLON, 1, KLEV, &
+!     &  PPRESSURE, PTEMPERATURE, thermodynamics%h2o_sat_liq, 2)  
+     
+!MNH     
+thermodynamics%h2o_sat_liq(:,:) = QSATW_2D(REAL(PPRESSURE), REAL(PTEMPERATURE))
+thermodynamics%h2o_sat_liq(:,:) = thermodynamics%h2o_sat_liq(:,:) &
+                                & / (1.+thermodynamics%h2o_sat_liq(:,:)) ! mixing ratio => spec humid
+!MNH
+
+! Alternative approximate version using temperature and pressure from
+! the thermodynamics structure
+!CALL thermodynamics%calc_saturation_wrt_liquid(KIDIA, KFDIA)
+
+! Set single-level fileds
+single_level%solar_irradiance              = PSOLAR_IRRADIANCE
+single_level%cos_sza(KIDIA:KFDIA)          = PMU0(KIDIA:KFDIA)
+single_level%skin_temperature(KIDIA:KFDIA) = PTEMPERATURE_SKIN(KIDIA:KFDIA)
+single_level%sw_albedo(KIDIA:KFDIA,:)      = PALBEDO_DIF(KIDIA:KFDIA,:)
+single_level%sw_albedo_direct(KIDIA:KFDIA,:)=PALBEDO_DIR(KIDIA:KFDIA,:)
+
+! pause
+
+! Longwave emissivity is in two bands
+single_level%lw_emissivity(KIDIA:KFDIA,1)  = PEMIS(KIDIA:KFDIA)
+single_level%lw_emissivity(KIDIA:KFDIA,2)  = PEMIS_WINDOW(KIDIA:KFDIA)
+
+! Create the relevant seed from date and time get the starting day
+! and number of minutes since start
+! IDAY = NDD(NINDAT)  ! NINDAT is AAAAMMDD initial date NDD extract DD as INTEGER
+IDAY = TDTEXP%TDATE%DAY ! MNH
+ITIM = NINT((TDTMOD%time-TDTCUR%time) / 60.0_JPRB) ! YRRIP contains timestep infos ; number of minutes since beginning
+DO JLON = KIDIA, KFDIA
+  ! This method gives a unique value for roughly every 1-km square
+  ! on the globe and every minute.  ASIN(PGEMU)*60 gives rough
+  ! latitude in degrees, which we multiply by 100 to give a unique
+  ! value for roughly every km. PGELAM*60*100 gives a unique number
+  ! for roughly every km of longitude around the equator, which we
+  ! multiply by 180*100 so there is no overlap with the latitude
+  ! values.  The result can be contained in a 32-byte integer (but
+  ! since random numbers are generated with the help of integer
+  ! overflow, it should not matter if the number did overflow).
+  single_level%iseed(JLON) = ITIM + IDAY & 
+       &  +  NINT(PGELAM(JLON)*108000000.0_JPRB &
+       &          + ASIN(PGEMU(JLON))*6000.0_JPRB)
+ENDDO
+
+! Set cloud fields
+cloud%q_liq(KIDIA:KFDIA,:)    = PQ_LIQUID(KIDIA:KFDIA,:)
+cloud%q_ice(KIDIA:KFDIA,:)    = PQ_ICE(KIDIA:KFDIA,:) + PQ_SNOW(KIDIA:KFDIA,:)
+cloud%fraction(KIDIA:KFDIA,:) = PCLOUD_FRAC(KIDIA:KFDIA,:)
+
+! Compute effective radii and convert to metres - Could take it from LIMA
+CALL LIQUID_EFFECTIVE_RADIUS(KIDIA, KFDIA, KLON, KLEV, &
+     &  PPRESSURE, PTEMPERATURE, PCLOUD_FRAC, PQ_LIQUID, PQ_RAIN, &
+     &  PLAND_SEA_MASK, PCCN_LAND, PCCN_SEA, &
+     &  PRE_LIQUID_UM) 
+    
+cloud%re_liq(KIDIA:KFDIA,:) = PRE_LIQUID_UM(KIDIA:KFDIA,:) * 1.0e-6_JPRB ! conversion into meters
+
+CALL ICE_EFFECTIVE_RADIUS(KIDIA, KFDIA, KLON, KLEV, &
+     &  PPRESSURE, PTEMPERATURE, PCLOUD_FRAC, PQ_ICE, PQ_SNOW, PGEMU, &
+     &  PRE_ICE_UM)
+     
+cloud%re_ice(KIDIA:KFDIA,:) = PRE_ICE_UM(KIDIA:KFDIA,:) * 1.0e-6_JPRB
+
+! Get the cloud overlap decorrelation length (for cloud boundaries),
+! in km, according to the parameterization specified by NDECOLAT,
+! and insert into the "cloud" object. Also get the ratio of
+! decorrelation lengths for cloud water content inhomogeneities and
+! cloud boundaries, and set it in the "rad_config" object.
+CALL CLOUD_OVERLAP_DECORR_LEN(KIDIA, KFDIA, KLON, PGEMU, NDECOLAT, &
+     &    ZDECORR_LEN_KM, PDECORR_LEN_RATIO=ZDECORR_LEN_RATIO)
+     
+rad_config%cloud_inhom_decorr_scaling = ZDECORR_LEN_RATIO
+
+DO JLON = KIDIA,KFDIA
+  CALL cloud%set_overlap_param(thermodynamics, &
+       &                       ZDECORR_LEN_KM(JLON)*1000.0_JPRB, &
+       &                       istartcol=JLON, iendcol=JLON)
+ENDDO
+
+! Cloud water content fractional standard deviation is configurable
+! from namelist NAERAD but must be globally constant. Before it was
+! hard coded at 1.0.
+CALL cloud%create_fractional_std(KLON, KLEV, XCLOUD_FRAC_STD)
+
+! By default mid and high cloud effective size is 10 km
+CALL cloud%create_inv_cloud_effective_size(KLON,KLEV,1.0_JPRB/10000.0_JPRB)
+! But for boundary clouds (eta > 0.8) we set it to 1 km
+DO JLEV = 1,KLEV
+  DO JLON = KIDIA,KFDIA
+    IF (PPRESSURE(JLON,JLEV) > 0.8_JPRB * PPRESSURE_H(JLON,KLEV+1)) THEN
+      cloud%inv_cloud_effective_size(JLON,JLEV) = 1.0e-3_JPRB
+    ENDIF
+  ENDDO
+ENDDO
+
+
+! Compute the dry mass of each layer neglecting humidity effects, in
+! kg m-2, needed to scale some of the aerosol inputs
+CALL thermodynamics%get_layer_mass(ZLAYER_MASS)
+
+! Copy over aerosol mass mixing ratio
+IF (NAERMACC > 0) THEN
+
+  ! MACC aerosol climatology - this is already in mass mixing ratio
+  ! units with the required array orientation so we can copy it over
+  ! directly
+  aerosol%mixing_ratio(KIDIA:KFDIA,:,:) = PAEROSOL(KIDIA:KFDIA,:,:)
+
+  ! Add the tropospheric and stratospheric backgrounds contained in the
+  ! old Tegen arrays - this is very ugly!
+  IF (TROP_BG_AER_MASS_EXT > 0.0_JPRB) THEN
+    aerosol%mixing_ratio(KIDIA:KFDIA,:,ITYPE_TROP_BG_AER) &
+         &  = aerosol%mixing_ratio(KIDIA:KFDIA,:,ITYPE_TROP_BG_AER) &
+         &  + PAEROSOL_OLD(KIDIA:KFDIA,1,:) &
+         &  / (ZLAYER_MASS * TROP_BG_AER_MASS_EXT)
+  ENDIF
+  IF (STRAT_BG_AER_MASS_EXT > 0.0_JPRB) THEN
+    aerosol%mixing_ratio(KIDIA:KFDIA,:,ITYPE_STRAT_BG_AER) &
+         &  = aerosol%mixing_ratio(KIDIA:KFDIA,:,ITYPE_STRAT_BG_AER) &
+         &  + PAEROSOL_OLD(KIDIA:KFDIA,6,:) &
+         &  / (ZLAYER_MASS * STRAT_BG_AER_MASS_EXT)
+  ENDIF
+
+ELSE
+
+  ! Tegen aerosol climatology - the array PAEROSOL_OLD contains the
+  ! 550-nm optical depth in each layer. The optics data file
+  ! aerosol_ifs_rrtm_tegen.nc does not contain mass extinction
+  ! coefficient, but a scaling factor that the 550-nm optical depth
+  ! should be multiplied by to obtain the optical depth in each
+  ! spectral band.  Therefore, in order for the units to work out, we
+  ! need to divide by the layer mass (in kg m-2) to obtain the 550-nm
+  ! cross-section per unit mass of dry air (so in m2 kg-1).  We also
+  ! need to permute the array.
+  DO JLEV = 1,KLEV
+    DO JAER = 1,6
+      aerosol%mixing_ratio(KIDIA:KFDIA,JLEV,JAER) &
+         &  = PAEROSOL_OLD(KIDIA:KFDIA,JAER,JLEV) &
+         &  / ZLAYER_MASS(KIDIA:KFDIA,JLEV)
+    ENDDO
+  ENDDO
+
+ENDIF
+
+! Convert ozone Pa*kg/kg to kg/kg
+DO JLEV = 1,KLEV
+  DO JLON = KIDIA,KFDIA
+    ZO3(JLON,JLEV) = PO3_DP(JLON,JLEV) &
+         &         / (PPRESSURE_H(JLON,JLEV+1)-PPRESSURE_H(JLON,JLEV))
+  ENDDO
+ENDDO
+
+! Insert gas mixing ratios
+CALL gas%put(IH2O,    IMassMixingRatio, PQ)
+CALL gas%put(ICO2,    IMassMixingRatio, PCO2)
+CALL gas%put(ICH4,    IMassMixingRatio, PCH4)
+CALL gas%put(IN2O,    IMassMixingRatio, PN2O)
+CALL gas%put(ICFC11,  IMassMixingRatio, PCFC11)
+CALL gas%put(ICFC12,  IMassMixingRatio, PCFC12)
+CALL gas%put(IHCFC22, IMassMixingRatio, PHCFC22)
+CALL gas%put(ICCL4,   IMassMixingRatio, PCCL4)
+CALL gas%put(IO3,     IMassMixingRatio, ZO3)
+CALL gas%put_well_mixed(IO2, IVolumeMixingRatio, 0.20944_JPRB) ! fixed volume mixing ratio for oxygen
+
+! Ensure the units of the gas mixing ratios are what is required by
+! the gas absorption model
+call set_gas_units(rad_config, gas)
+! 
+! Call radiation scheme
+CALL radiation(KLON, KLEV, KIDIA, KFDIA, rad_config, &
+     &  single_level, thermodynamics, gas, cloud, aerosol, flux)
+
+! Compute required output fluxes
+! First the net fluxes
+PFLUX_SW(KIDIA:KFDIA,:) = flux%sw_dn(KIDIA:KFDIA,:) - flux%sw_up(KIDIA:KFDIA,:)
+PFLUX_LW(KIDIA:KFDIA,:) = flux%lw_dn(KIDIA:KFDIA,:) - flux%lw_up(KIDIA:KFDIA,:)
+PFLUX_SW_CLEAR(KIDIA:KFDIA,:) &
+     &  = flux%sw_dn_clear(KIDIA:KFDIA,:) - flux%sw_up_clear(KIDIA:KFDIA,:)
+PFLUX_LW_CLEAR(KIDIA:KFDIA,:) &
+     &  = flux%lw_dn_clear(KIDIA:KFDIA,:) - flux%lw_up_clear(KIDIA:KFDIA,:)
+     
+    
+! print*,"flux%sw_dn_surf_band(:,:)",flux%sw_dn_surf_band(:,:)
+!Now the surface fluxes
+PFLUX_SW_SURF      (KIDIA:KFDIA,:) = TRANSPOSE(flux%sw_dn_surf_band        (:,KIDIA:KFDIA)) ! modif Quentin
+PFLUX_LW_SURF      (KIDIA:KFDIA) = flux%lw_dn             (KIDIA:KFDIA,KLEV+1)
+PFLUX_SW_SURF_CLEAR(KIDIA:KFDIA,:) = TRANSPOSE(flux%sw_dn_surf_clear_band  (:,KIDIA:KFDIA)) ! modif Quentin
+PFLUX_LW_SURF_CLEAR(KIDIA:KFDIA) = flux%lw_dn_clear       (KIDIA:KFDIA,KLEV+1)
+PFLUX_DIR_SURF     (KIDIA:KFDIA,:) = TRANSPOSE(flux%sw_dn_direct_surf_band      (:,KIDIA:KFDIA)) ! modif Quentin
+PFLUX_DIR_SURF_CLEAR  (KIDIA:KFDIA,:) = TRANSPOSE(flux%sw_dn_direct_surf_clear_band (:,KIDIA:KFDIA)) ! modif Quentin
+PFLUX_DIR_SURF_INTO_SUN(KIDIA:KFDIA,:) = 0.0_JPRB
+DO JBAND = 1,NSWB_MNH
+    WHERE (PMU0(KIDIA:KFDIA) > EPSILON(1.0_JPRB))    
+       PFLUX_DIR_SURF_INTO_SUN(KIDIA:KFDIA,JBAND) = PFLUX_DIR_SURF(KIDIA:KFDIA,JBAND) / PMU0(KIDIA:KFDIA)     
+    END WHERE
+END DO 
+
+! Top-of-atmosphere downwelling flux
+PFLUX_SW_DN_TOA(KIDIA:KFDIA) = flux%sw_dn(KIDIA:KFDIA,1)
+
+! Top-of-atmosphere upwelling fluxes - Q.L.
+PFLUX_SW_UP_TOA(KIDIA:KFDIA) = flux%sw_up(KIDIA:KFDIA,1)
+PFLUX_LW_UP_TOA(KIDIA:KFDIA) = flux%lw_up(KIDIA:KFDIA,1)
+PFLUX_SW_UP_TOA_CLEAR(KIDIA:KFDIA) = flux%sw_up_clear(KIDIA:KFDIA,1)
+PFLUX_LW_UP_TOA_CLEAR(KIDIA:KFDIA) = flux%lw_up_clear(KIDIA:KFDIA,1)
+
+
+
+! Total fluxes - QL
+! print*,"flux%sw_dn(KIDIA:KFDIA,:)",flux%sw_dn(KIDIA:KFDIA,:)
+
+PFLUX_SW_DN(KIDIA:KFDIA,:) = flux%sw_dn(KIDIA:KFDIA,:)
+PFLUX_SW_UP(KIDIA:KFDIA,:) = flux%sw_up(KIDIA:KFDIA,:)
+PFLUX_LW_DN(KIDIA:KFDIA,:) = flux%lw_dn(KIDIA:KFDIA,:)
+PFLUX_LW_UP(KIDIA:KFDIA,:) = flux%lw_up(KIDIA:KFDIA,:)
+PFLUX_SW_DN_CLEAR(KIDIA:KFDIA,:) = flux%sw_dn_clear(KIDIA:KFDIA,:)
+PFLUX_SW_UP_CLEAR(KIDIA:KFDIA,:) = flux%sw_up_clear(KIDIA:KFDIA,:)
+PFLUX_LW_DN_CLEAR(KIDIA:KFDIA,:) = flux%lw_dn_clear(KIDIA:KFDIA,:)
+PFLUX_LW_UP_CLEAR(KIDIA:KFDIA,:) = flux%lw_up_clear(KIDIA:KFDIA,:)
+
+
+! print*, "flux%sw_dn_band(:,1,1:10)"
+! print*,shape(flux%sw_dn_band)
+! print*, flux%sw_dn_band(1,1,1:5)
+! print*, flux%sw_dn_band(2,1,1:5)
+! print*, flux%sw_dn_band(3,1,1:5)
+! print*, flux%sw_dn_band(4,1,1:5)
+! print*, flux%sw_dn_band(5,1,1:5)
+! pause
+
+! Compute UV fluxes as weighted sum of appropriate shortwave bands
+PFLUX_UV       (KIDIA:KFDIA) = 0.0_JPRB
+DO JBAND = 1,NWEIGHT_UV
+  PFLUX_UV(KIDIA:KFDIA) = PFLUX_UV(KIDIA:KFDIA) + WEIGHT_UV(JBAND) &
+       &  * flux%sw_dn_surf_band(IBAND_UV(JBAND),KIDIA:KFDIA)
+ENDDO
+
+! Compute photosynthetically active radiation similarly
+PFLUX_PAR      (KIDIA:KFDIA) = 0.0_JPRB
+PFLUX_PAR_CLEAR(KIDIA:KFDIA) = 0.0_JPRB
+DO JBAND = 1,NWEIGHT_PAR
+  PFLUX_PAR(KIDIA:KFDIA) = PFLUX_PAR(KIDIA:KFDIA) + WEIGHT_PAR(JBAND) &
+       &  * flux%sw_dn_surf_band(IBAND_PAR(JBAND),KIDIA:KFDIA)
+  PFLUX_PAR_CLEAR(KIDIA:KFDIA) = PFLUX_PAR_CLEAR(KIDIA:KFDIA) &
+       &  + WEIGHT_PAR(JBAND) &
+       &  * flux%sw_dn_surf_clear_band(IBAND_PAR(JBAND),KIDIA:KFDIA)
+ENDDO
+
+! Compute effective broadband emissivity
+ZBLACK_BODY_NET_LW = PFLUX_LW_SURF(KIDIA:KFDIA) &
+     &  - RSIGMA*PTEMPERATURE_SKIN(KIDIA:KFDIA)**4
+PEMIS_OUT(KIDIA:KFDIA) = PEMIS(KIDIA:KFDIA)
+WHERE (ABS(ZBLACK_BODY_NET_LW) > 1.0E-5) 
+  PEMIS_OUT(KIDIA:KFDIA) = PFLUX_LW(KIDIA:KFDIA,KLEV+1) / ZBLACK_BODY_NET_LW
+END WHERE
+! Copy longwave derivatives
+IF (LAPPROXLWUPDATE) THEN
+  PLWDERIVATIVE(KIDIA:KFDIA,:) = flux%lw_derivatives(KIDIA:KFDIA,:)
+END IF
+
+! Store the shortwave downwelling fluxes in each albedo band
+
+IF (LAPPROXSWUPDATE) THEN
+  PSWDIFFUSEBAND(KIDIA:KFDIA,:) = 0.0_JPRB
+  PSWDIRECTBAND (KIDIA:KFDIA,:) = 0.0_JPRB
+  DO JBAND = 1,rad_config%n_bands_sw
+    JB_ALBEDO = rad_config%i_albedo_from_band_sw(JBAND)
+    DO JLON = KIDIA,KFDIA
+      PSWDIFFUSEBAND(JLON,JB_ALBEDO) = PSWDIFFUSEBAND(JLON,JB_ALBEDO) &
+           &  + flux%sw_dn_surf_band(JBAND,JLON) &
+           &  - flux%sw_dn_direct_surf_band(JBAND,JLON)
+      PSWDIRECTBAND(JLON,JB_ALBEDO)  = PSWDIRECTBAND(JLON,JB_ALBEDO) &
+           &  + flux%sw_dn_direct_surf_band(JBAND,JLON)
+    ENDDO
+  ENDDO
+ENDIF
+
+CALL single_level%deallocate
+CALL thermodynamics%deallocate
+CALL gas%deallocate
+CALL cloud%deallocate
+CALL aerosol%deallocate
+CALL flux%deallocate
+
+IF (LHOOK) CALL DR_HOOK('RADIATION_SCHEME',1,ZHOOK_HANDLE)
+
+END SUBROUTINE RADIATION_SCHEME
+
+END MODULE MODI_RADIATION_SCHEME
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/radiation_setup.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/radiation_setup.F90
new file mode 100644
index 0000000000000000000000000000000000000000..045d7a395ce45b36020e410d3542098bb676afe3
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifs/radiation_setup.F90
@@ -0,0 +1,368 @@
+MODULE RADIATION_SETUP
+
+! RADIATION_SETUP - Setting up modular radiation scheme
+!
+! PURPOSE
+! -------
+!   The modular radiation scheme is contained in a separate
+!   library. SETUP_RADIATION_SCHEME in this module sets up a small
+!   number of global variables needed to store the information for it.
+!
+!   Lower case is used for variables and types taken from the
+!   radiation library
+!
+! INTERFACE
+! ---------
+!   SETUP_RADIATION_SCHEME is called from SUECRAD.  The radiation
+!   scheme is actually run using the RADIATION_SCHEME routine (not in
+!   this module).
+!
+! AUTHOR
+! ------
+!   Robin Hogan, ECMWF
+!   Original: 2015-09-16
+!
+! MODIFICATIONS
+! -------------
+!
+!-----------------------------------------------------------------------
+
+  USE PARKIND1,         ONLY : JPRB
+  USE radiation_config, ONLY : config_type, &
+       &                       ISolverMcICA, ISolverSpartacus, &
+       &                       ILiquidModelSlingo, ILiquidModelSOCRATES, &
+       &                       IIceModelFu, IIceModelBaran, &
+       &                       IOverlapExponential,IOverlapExponentialRandom
+
+  ! Store configuration information for the radiation scheme in a
+  ! global variable
+  !type(config_type) :: rad_config
+  USE MODD_PARAM_ECRAD_n , ONLY : rad_config
+
+ IMPLICIT NONE
+
+  ! Ultraviolet weightings
+  INTEGER         :: NWEIGHT_UV
+  INTEGER         :: IBAND_UV(100)
+  REAL(KIND=JPRB) :: WEIGHT_UV(100)
+  ! Photosynthetically active radiation weightings
+  INTEGER         :: NWEIGHT_PAR
+  INTEGER         :: IBAND_PAR(100)
+  REAL(KIND=JPRB) :: WEIGHT_PAR(100)
+
+  ! Background aerosol is specified in an ugly way: using the old
+  ! Tegen fields that are in terms of optical depth, and converted to
+  ! mass mixing ratio via the relevant mass-extinction coefficient
+  INTEGER, PARAMETER :: ITYPE_TROP_BG_AER = 8 ! hydrophobic organic
+  INTEGER, PARAMETER :: ITYPE_STRAT_BG_AER=12 ! non-absorbing sulphate
+  REAL(KIND=JPRB)    :: TROP_BG_AER_MASS_EXT
+  REAL(KIND=JPRB)    :: STRAT_BG_AER_MASS_EXT
+
+CONTAINS
+
+  ! This routine copies information between the IFS radiation
+  ! configuration (stored in global variables) and the radiation
+  ! configuration of the modular radiation scheme (stored in
+  ! rad_config).  The optional input logical LOUTPUT controls whether
+  ! to print lots of information during the setup stage (default is
+  ! no).
+  SUBROUTINE SETUP_RADIATION_SCHEME(LOUTPUT)
+
+    USE YOMHOOK,  ONLY : LHOOK, DR_HOOK
+    USE YOMLUN,   ONLY : NULNAM, NULOUT, NULERR
+    USE YOESRTWN, ONLY : NMPSRTM
+!    USE YOERAD,   ONLY : YRERAD
+    USE MODD_PARAM_ECRAD_n , ONLY : LAPPROXLWUPDATE, NAERMACC, NLIQOPT, NICEOPT,  &
+                                 &  NLWSOLVER, NSWSOLVER, NLWSCATTERING, NOVLP,CDATADIR 
+   
+    USE radiation_interface,      ONLY : setup_radiation
+    USE radiation_aerosol_optics, ONLY : dry_aerosol_sw_mass_extinction
+
+!#include "posname.intfb.h"
+
+    ! Whether or not to provide information on the radiation scheme
+    ! configuration
+    LOGICAL, INTENT(IN), OPTIONAL :: LOUTPUT
+
+    ! Verbosity of configuration information 0=none, 1=warning,
+    ! 2=info, 3=progress, 4=detailed, 5=debug
+    INTEGER :: IVERBOSESETUP
+    INTEGER :: ISTAT
+
+    REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+    IF (LHOOK) CALL DR_HOOK('RADIATION_SETUP:SETUP_RADIATION_SCHEME',0,ZHOOK_HANDLE)
+
+    ! *** GENERAL SETUP ***
+
+    ! Configure verbosity of setup of radiation scheme
+    IVERBOSESETUP = 4 ! Provide plenty of information
+    IF (PRESENT(LOUTPUT)) THEN
+      IF (.NOT. LOUTPUT) THEN
+        IVERBOSESETUP = 1 ! Warnings and errors only
+      ENDIF
+    ENDIF
+    rad_config%iverbosesetup = IVERBOSESETUP
+
+    IF (IVERBOSESETUP > 1) THEN
+      WRITE(NULOUT,'(a)') '-------------------------------------------------------------------------------'
+      WRITE(NULOUT,'(a)') 'RADIATION_SETUP'
+    ENDIF
+
+    ! Normal operation of the radiation scheme displays only errors
+    ! and warnings
+    rad_config%iverbose = 1
+
+    ! For the time being, ensure a valid default directory name
+    rad_config%directory_name = CDATADIR
+
+    ! Do we do Hogan and Bozzo (2014) approximate longwave updates?
+    rad_config%do_lw_derivatives = LAPPROXLWUPDATE
+
+    ! Surface spectral fluxes are needed for spectral shortwave albedo
+    ! calculation
+    rad_config%do_surface_sw_spectral_flux = .TRUE.
+
+
+    ! *** SETUP GAS OPTICS ***
+
+    ! Assume IFS has already set-up RRTM, so the setup_radiation
+    ! routine below does not have to
+    rad_config%do_setup_ifsrrtm = .FALSE.
+!     rad_config%do_setup_ifsrrtm = .TRUE.
+
+
+    ! *** SETUP CLOUD OPTICS ***
+
+    ! Setup liquid optics
+    IF (NLIQOPT == 2) THEN
+      rad_config%i_liq_model = ILiquidModelSlingo
+    ELSEIF (NLIQOPT == 3) THEN
+      rad_config%i_liq_model = ILiquidModelSOCRATES
+    ELSE
+      WRITE(NULERR,'(a,i0)') 'Unavailable liquid optics model in modular radiation scheme: NLIQOPT=', &
+           &  NLIQOPT
+      CALL ABOR1('RADIATION_SETUP: error interpreting NLIQOPT')   
+    ENDIF
+
+    ! Setup ice optics
+    IF (NICEOPT == 3) THEN
+      rad_config%i_ice_model = IIceModelFu
+    ELSEIF (NICEOPT == 4) THEN
+      rad_config%i_ice_model = IIceModelBaran
+    ELSE
+      WRITE(NULERR,'(a,i0)') 'Unavailable ice optics model in modular radiation scheme: NICEOPT=', &
+           &  NICEOPT
+      CALL ABOR1('RADIATION_SETUP: error interpreting NICEOPT')   
+    ENDIF
+
+    ! For consistency with earlier versions of the IFS radiation
+    ! scheme, we perform shortwave delta-Eddington scaling *after* the
+    ! merge of the cloud, aerosol and gas optical properties.  Set
+    ! this to "false" to do the scaling on the cloud and aerosol
+    ! properties separately before merging with gases. Note that this
+    ! is not compatible with the SPARTACUS solver.
+    rad_config%do_sw_delta_scaling_with_gases = .TRUE.
+
+    ! Use Exponential-Exponential cloud overlap to match original IFS
+    ! implementation of Raisanen cloud generator
+    ! rad_config%i_overlap_scheme = IOverlapExponential
+    rad_config%i_overlap_scheme = NOVLP ! QL
+
+    ! *** SETUP AEROSOLS ***
+
+    rad_config%use_aerosols = .TRUE.
+
+    IF (NAERMACC > 0) THEN
+      ! Using MACC climatology - in this case the aerosol optics file
+      ! will be chosen automatically
+
+      ! 12 IFS aerosol classes: 1-3 Sea salt, 4-6 Boucher desert dust,
+      ! 7 hydrophilic organics, 8 hydrophobic organics, 9&10
+      ! hydrophobic black carbon, 11 ammonium sulphate, 12 inactive
+      ! SO2
+      rad_config%n_aerosol_types = 12
+
+      ! Indices to the aerosol optical properties in
+      ! aerosol_ifs_rrtm_*.nc, for each class, where negative numbers
+      ! index hydrophilic aerosol types and positive numbers index
+      ! hydrophobic aerosol types
+      rad_config%i_aerosol_type_map = 0 ! There can be up to 256 types
+      rad_config%i_aerosol_type_map(1:12) = (/ &
+           &  -1, &  ! Sea salt, size bin 1 (OPAC)
+           &  -2, &  ! Sea salt, size bin 2 (OPAC)
+           &  -3, &  ! Sea salt, size bin 3 (OPAC)
+           &   7, &  ! Desert dust, size bin 1 (Woodward 2001)
+           &   8, &  ! Desert dust, size bin 2 (Woodward 2001)
+           &   9, &  ! Desert dust, size bin 3 (Woodward 2001)
+           &  -4, &  ! Hydrophilic organic matter (OPAC)
+           &  10, &  ! Hydrophobic organic matter (OPAC)
+           &  11, &  ! Black carbon (Boucher)
+           &  11, &  ! Black carbon (Boucher)
+           &  -5, &  ! Ammonium sulphate (OPAC)
+           &  14 /)  ! Stratospheric sulphate (hand edited from OPAC)
+
+      ! Background aerosol mass-extinction coefficients are obtained
+      ! after the configuration files have been read - see later in
+      ! this routine.
+
+    ELSE
+      ! Using Tegen climatology
+      rad_config%n_aerosol_types = 6
+      rad_config%i_aerosol_type_map = 0 ! There can be up to 256 types
+      rad_config%i_aerosol_type_map(1:6) = (/ &
+           &  1, &  ! Continental background
+           &  2, &  ! Maritime
+           &  3, &  ! Desert
+           &  4, &  ! Urban
+           &  5, &  ! Volcanic active
+           &  6 /)  ! Stratospheric background
+
+      ! Manually set the aerosol optics file name (the directory will
+      ! be added automatically)
+      rad_config%aerosol_optics_override_file_name = 'aerosol_ifs_rrtm_tegen.nc'
+    ENDIF
+
+    ! *** SETUP SOLVER ***
+
+    ! 3D effects are off by default
+    rad_config%do_3d_effects = .FALSE.
+
+    ! Select longwave solver
+    SELECT CASE (NLWSOLVER)
+    CASE(0)
+      rad_config%i_solver_lw = ISolverMcICA
+    CASE(1)
+      rad_config%i_solver_lw = ISolverSpartacus
+    CASE(2)
+      rad_config%i_solver_lw = ISolverSpartacus
+      rad_config%do_3d_effects = .TRUE.
+    CASE DEFAULT
+      WRITE(NULERR,'(a,i0)') 'Unknown value for NLWSOLVER: ', NLWSOLVER
+      CALL ABOR1('RADIATION_SETUP: error interpreting NLWSOLVER')
+    END SELECT
+
+    ! Select shortwave solver
+
+    SELECT CASE (NSWSOLVER)
+    CASE(0)
+      rad_config%i_solver_sw = ISolverMcICA
+    CASE(1)
+      rad_config%i_solver_sw = ISolverSpartacus
+      rad_config%do_3d_effects = .FALSE.
+      IF (NLWSOLVER == 2) THEN
+        CALL ABOR1('RADIATION_SETUP: cannot represent 3D effects in LW but not SW')
+      ENDIF
+    CASE(2)
+      rad_config%i_solver_sw = ISolverSpartacus
+      rad_config%do_3d_effects = .TRUE.
+      IF (NLWSOLVER == 1) THEN
+        CALL ABOR1('RADIATION_SETUP: cannot represent 3D effects in SW but not LW')
+      ENDIF
+    CASE DEFAULT
+      WRITE(NULERR,'(a,i0)') 'Unknown value for NSWSOLVER: ', NSWSOLVER
+      CALL ABOR1('RADIATION_SETUP: error interpreting NSWSOLVER')
+    END SELECT
+
+    ! SPARTACUS solver requires delta scaling to be done separately
+    ! for clouds & aerosols
+    IF (rad_config%i_solver_sw == ISolverSpartacus) THEN
+      rad_config%do_sw_delta_scaling_with_gases = .FALSE.
+    ENDIF
+
+    ! Do we represent longwave scattering?
+    rad_config%do_lw_cloud_scattering = .FALSE.
+    rad_config%do_lw_aerosol_scattering = .FALSE.
+    SELECT CASE (NLWSCATTERING)
+    CASE(1)
+      rad_config%do_lw_cloud_scattering = .TRUE.
+    CASE(2)
+      rad_config%do_lw_cloud_scattering = .TRUE.
+      IF (NAERMACC > 0) THEN
+        ! Tegen climatology omits data required to do longwave
+        ! scattering by aerosols, so only turn this on with a more
+        ! recent scattering database
+        rad_config%do_lw_aerosol_scattering = .TRUE.
+      ENDIF
+    END SELECT
+
+
+    ! *** IMPLEMENT SETTINGS ***
+
+    ! For advanced configuration, the configuration data for the
+    ! "radiation" project can specified directly in the namelist.
+    ! However, the variable naming convention is not consistent with
+    ! the rest of the IFS.  For basic configuration there are specific
+    ! variables in the NAERAD namelist available in the YRERAD
+    ! structure.
+    ! CALL POSNAME(NULNAM, 'RADIATION', ISTAT)
+    ISTAT = 1 ! QL no namelist used, all in NAM_PARAM_ECRAD
+    SELECT CASE (ISTAT)
+      CASE(0)
+        CALL rad_config%read(unit=NULNAM)
+      CASE(1)
+        WRITE(NULOUT,'(a)') 'Namelist RADIATION not found, using settings from NAERAD only'
+      CASE DEFAULT
+        CALL ABOR1('RADIATION_SETUP: error reading RADIATION section of namelist file')
+    END SELECT
+
+    ! Print configuration
+    IF (IVERBOSESETUP > 1) THEN
+      WRITE(NULOUT,'(a)') 'Radiation scheme settings:'
+      CALL rad_config%print(IVERBOSE=IVERBOSESETUP)
+    ENDIF
+
+    ! Use configuration data to set-up radiation scheme, including
+    ! reading scattering datafiles
+    CALL setup_radiation(rad_config)
+
+    ! Populate the mapping between the 14 RRTM shortwave bands and the
+    ! 6 albedo inputs. The mapping according to the stated wavelength
+    ! ranges of the 6-band model does not match the hard-wired mapping
+    ! in NMPSRTM, but only the hard-wired values produce sensible
+    ! results...
+    rad_config%i_albedo_from_band_sw = NMPSRTM
+    !    call rad_config%define_sw_albedo_intervals(6, &
+    !         &  (/ 0.25e-6_jprb, 0.44e-6_jprb, 1.19e-6_jprb, &
+    !         &     2.38e-6_jprb, 4.00e-6_jprb /),  (/ 1,2,3,4,5,6 /))
+    
+    ! Likewise between the 16 RRTM longwave bands and the 2 emissivity
+    ! inputs (info taken from rrtm_ecrt_140gp_mcica.F90) representing
+    ! outside and inside the window region of the spectrum
+    ! rad_config%i_emiss_from_band_lw = (/ 1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1 /)
+    call rad_config%define_lw_emiss_intervals(3, &
+         &  (/ 8.0e-6_jprb,13.0e-6_jprb /),  (/ 1,2,1 /))
+
+    ! Get spectral weightings for UV and PAR
+    call rad_config%get_sw_weights(0.2e-6_jprb, 0.4415e-6_jprb, &
+         &  NWEIGHT_UV, IBAND_UV, WEIGHT_UV, 'ultraviolet')
+    call rad_config%get_sw_weights(0.4e-6_jprb, 0.7e-6_jprb, &
+         &  NWEIGHT_PAR, IBAND_PAR, WEIGHT_PAR, &
+         &  'photosynthetically active radiation, PAR')
+
+    IF (NAERMACC > 0) THEN
+      ! With the MACC aerosol climatology we need to add in the
+      ! background aerosol afterwards using the Tegen arrays.  In this
+      ! case we first configure the background aerosol mass-extinction
+      ! coefficient at 550 nm, which corresponds to the 10th RRTMG
+      ! shortwave band.
+      TROP_BG_AER_MASS_EXT  = dry_aerosol_sw_mass_extinction(rad_config, &
+           &                                   ITYPE_TROP_BG_AER, 10)
+      STRAT_BG_AER_MASS_EXT = dry_aerosol_sw_mass_extinction(rad_config, &
+           &                                   ITYPE_STRAT_BG_AER, 10)
+      
+      WRITE(NULOUT,'(a,i0)') 'Tropospheric bacground uses aerosol type ', &
+           &                 ITYPE_TROP_BG_AER
+      WRITE(NULOUT,'(a,i0)') 'Stratospheric bacground uses aerosol type ', &
+           &                 ITYPE_STRAT_BG_AER
+    ENDIF
+      
+    IF (IVERBOSESETUP > 1) THEN
+      WRITE(NULOUT,'(a)') '-------------------------------------------------------------------------------'
+    ENDIF
+
+    IF (LHOOK) CALL DR_HOOK('RADIATION_SETUP:SETUP_RADIATION_SCHEME',1,ZHOOK_HANDLE)
+
+  END SUBROUTINE SETUP_RADIATION_SCHEME
+
+END MODULE RADIATION_SETUP
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifsaux/yomcst.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsaux/yomcst.F90
new file mode 100644
index 0000000000000000000000000000000000000000..a26a5740d51a439791235810147b420531d1d4a7
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsaux/yomcst.F90
@@ -0,0 +1,29 @@
+MODULE YOMCST
+
+USE PARKIND1  ,ONLY : JPRB
+
+IMPLICIT NONE
+
+SAVE
+
+! * RPI          : number Pi
+REAL(KIND=JPRB), PARAMETER :: RPI = 3.14159265358979323846_JPRB
+! * RSIGMA       : Stefan-Bolzman constant
+REAL(KIND=JPRB), PARAMETER :: RSIGMA = 5.67037321e-8_JPRB ! W m-2 K-4
+! * RG           : gravity constant
+REAL(KIND=JPRB), PARAMETER :: RG = 9.80665_JPRB ! m s-2
+! * RD           : R_dry (dry air constant)
+REAL(KIND=JPRB), PARAMETER :: RD = 287.058_JPRB! J kg-1 K-1
+! * RMD          : dry air molar mass
+REAL(KIND=JPRB), PARAMETER :: RMD = 28.9644_JPRB
+! * RMV          : vapour water molar mass
+REAL(KIND=JPRB), PARAMETER :: RMV = 18.0153_JPRB
+! * RMO3         : ozone molar mass
+REAL(KIND=JPRB), PARAMETER :: RMO3 = 47.9942_JPRB
+! * RI0          : solar constant
+REAL(KIND=JPRB), PARAMETER :: RI0 = 1366.0_JPRB
+! * RDAY          : day duration in s
+REAL(KIND=JPRB), PARAMETER :: RDAY = 86400_JPRB
+! * RTT          : freezing temperature
+REAL(KIND=JPRB), PARAMETER :: RTT=273.16_JPRB
+END MODULE YOMCST
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifsaux/yomlun.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsaux/yomlun.F90
new file mode 100644
index 0000000000000000000000000000000000000000..f8758823086cffa742e46871378dbd83542dba5d
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsaux/yomlun.F90
@@ -0,0 +1,15 @@
+MODULE YOMLUN
+
+USE PARKIND1,      ONLY : JPIM
+USE YOMLUN_IFSAUX, ONLY : NULOUT, NULERR
+
+IMPLICIT NONE
+
+SAVE
+
+INTEGER(KIND=JPIM) :: NULRAD = 145
+
+INTEGER(KIND=JPIM) :: NULNAM  =  4
+
+!     ------------------------------------------------------------------
+END MODULE YOMLUN
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/rrtm_kgb1.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/rrtm_kgb1.F90
new file mode 100644
index 0000000000000000000000000000000000000000..cf0126f5d79d355f315af4fd2944246ccfee52a7
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/rrtm_kgb1.F90
@@ -0,0 +1,355 @@
+SUBROUTINE RRTM_KGB1(DIRECTORY)
+
+!     Originally by Eli J. Mlawer, Atmospheric & Environmental Research.
+!     BAND 1:  10-250 cm-1 (low - H2O; high - H2O)
+!     Reformatted for F90 by JJMorcrette, ECMWF
+!     R. Elkhatib 12-10-2005 Split for faster and more robust compilation.
+!     G.Mozdzynski March 2011 read constants from files
+!     ABozzo May 2013 update to RRTMG v4.85
+!     band 1:  10-350 cm-1
+!     T. Wilhelmsson and K. Yessad (Oct 2013) Geometry and setup refactoring.
+!     ------------------------------------------------------------------
+
+USE PARKIND1  ,ONLY : JPRB
+USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
+USE YOMLUN    ,ONLY : NULRAD
+USE MPL_MODULE,ONLY : MPL_BROADCAST
+USE YOMTAG    ,ONLY : MTAGRAD
+USE YOMMP0    , ONLY : NPROC, MYPROC
+
+USE YOERRTO1 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO ,&
+ & FRACREFBO  ,FORREFO, KAO_MN2, KBO_MN2
+
+!     ------------------------------------------------------------------
+
+IMPLICIT NONE
+
+CHARACTER(LEN=*), INTENT(IN) :: DIRECTORY
+
+!CHARACTER(LEN = 80) :: CLZZZ
+CHARACTER(LEN = 255) :: CLF1
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+#include "abor1.intfb.h"
+
+IF (LHOOK) CALL DR_HOOK('RRTM_KGB1',0,ZHOOK_HANDLE)
+
+IF( MYPROC==1 )THEN
+  !CALL GETENV("DATA",CLZZZ)
+  !IF(CLZZZ /= " ") THEN
+  !  CLF1=TRIM(CLZZZ) // "/RADRRTM"
+  CLF1 = DIRECTORY // "/RADRRTM"
+  WRITE(0,'(A,A)') 'Reading ',TRIM(CLF1)
+  ! RRTM and SRTM files from ecrad are in big-endian format.
+  ! Here they are read as big-endian at opening because otherwise MNH assumes littel-endian
+  ! No need for complation option export GFORTRAN_CONVERT_UNIT="little_endian;big_endian:145"
+  OPEN(NULRAD,FILE=TRIM(CLF1),FORM="UNFORMATTED",ACTION="READ",access='sequential',ERR=1000,CONVERT="BIG_ENDIAN")
+  !ELSE
+  !  OPEN(NULRAD,FILE='RADRRTM',FORM="UNFORMATTED",ACTION="READ",ERR=1000)
+  !ENDIF
+  READ(NULRAD,ERR=1001) KAO,KBO
+ENDIF
+IF( NPROC>1 )THEN
+  CALL MPL_BROADCAST (KAO,MTAGRAD,1,CDSTRING='RRTM_KGB1:')
+  CALL MPL_BROADCAST (KBO,MTAGRAD,1,CDSTRING='RRTM_KGB1:')
+ENDIF
+
+! Planck fraction mapping level: P = 212.7250 mbar, T = 223.06 K
+FRACREFAO(:) = (/ &
+ & 2.1227E-01_JPRB,1.8897E-01_JPRB,1.3934E-01_JPRB,1.1557E-01_JPRB,9.5282E-02_JPRB,8.3359E-02_JPRB, &
+ & 6.5333E-02_JPRB,5.2016E-02_JPRB,3.4272E-02_JPRB,4.0257E-03_JPRB,3.1857E-03_JPRB,2.6014E-03_JPRB, &
+ & 1.9141E-03_JPRB,1.2612E-03_JPRB,5.3169E-04_JPRB,7.6476E-05_JPRB/)
+
+! Planck fraction mapping level: P = 212.7250 mbar, T = 223.06 K
+! These Planck fractions were calculated using lower atmosphere
+! parameters.
+FRACREFBO(:) = (/ &
+ & 2.1227E-01_JPRB,1.8897E-01_JPRB,1.3934E-01_JPRB,1.1557E-01_JPRB,9.5282E-02_JPRB,8.3359E-02_JPRB, &
+ & 6.5333E-02_JPRB,5.2016E-02_JPRB,3.4272E-02_JPRB,4.0257E-03_JPRB,3.1857E-03_JPRB,2.6014E-03_JPRB, &
+ & 1.9141E-03_JPRB,1.2612E-03_JPRB,5.3169E-04_JPRB,7.6476E-05_JPRB/)
+
+!     The array FORREFO contains the coefficient of the water vapor
+!     foreign-continuum (including the energy term).  The first 
+!     index refers to reference temperature (296,260,224,260) and 
+!     pressure (970,475,219,3 mbar) levels.  The second index 
+!     runs over the g-channel (1 to 16).
+
+      FORREFO(1,:) = (/ &
+     & 3.6742e-02_JPRB,1.0664e-01_JPRB,2.6132e-01_JPRB,2.7906e-01_JPRB,2.8151e-01_JPRB,2.7465e-01_JPRB, &
+     & 2.8530e-01_JPRB,2.9123e-01_JPRB,3.0697e-01_JPRB,3.1801e-01_JPRB,3.2444e-01_JPRB,2.7746e-01_JPRB, &
+     & 3.1994e-01_JPRB,2.9750e-01_JPRB,2.1226e-01_JPRB,1.2847e-01_JPRB/)
+      FORREFO(2,:) = (/ &
+     & 4.0450e-02_JPRB,1.1085e-01_JPRB,2.9205e-01_JPRB,3.1934e-01_JPRB,3.1739e-01_JPRB,3.1450e-01_JPRB, &
+     & 3.2797e-01_JPRB,3.2223e-01_JPRB,3.3099e-01_JPRB,3.4800e-01_JPRB,3.4046e-01_JPRB,3.5700e-01_JPRB, &
+     & 3.8264e-01_JPRB,3.6679e-01_JPRB,3.3481e-01_JPRB,3.2113e-01_JPRB/)
+      FORREFO(3,:) = (/ &
+     & 4.6952e-02_JPRB,1.1999e-01_JPRB,3.1473e-01_JPRB,3.7015e-01_JPRB,3.6913e-01_JPRB,3.6352e-01_JPRB, &
+     & 3.7754e-01_JPRB,3.7402e-01_JPRB,3.7113e-01_JPRB,3.7720e-01_JPRB,3.8365e-01_JPRB,4.0876e-01_JPRB, &
+     & 4.2968e-01_JPRB,4.4186e-01_JPRB,4.3468e-01_JPRB,4.7083e-01_JPRB/)
+      FORREFO(4,:) = (/ &
+     & 7.0645e-02_JPRB,1.6618e-01_JPRB,2.8516e-01_JPRB,3.1819e-01_JPRB,3.0131e-01_JPRB,2.9552e-01_JPRB, &
+     & 2.8972e-01_JPRB,2.9348e-01_JPRB,2.8668e-01_JPRB,2.8483e-01_JPRB,2.8130e-01_JPRB,2.7757e-01_JPRB, &
+     & 2.9735e-01_JPRB,3.1684e-01_JPRB,3.0681e-01_JPRB,3.6778e-01_JPRB/)
+
+
+!     ------------------------------------------------------------------
+
+!     The array KAO contains absorption coefs at the 16 chosen g-values 
+!     for a range of pressure levels > ~100mb and temperatures.  The first
+!     index in the array, JT, which runs from 1 to 5, corresponds to 
+!     different temperatures.  More specifically, JT = 3 means that the 
+!     data are for the corresponding TREF for this  pressure level, 
+!     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30, 
+!     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second 
+!     index, JP, runs from 1 to 13 and refers to the corresponding 
+!     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).  
+!     The third index, IG, goes from 1 to 16, and tells us which 
+!     g-interval the absorption coefficients are for.
+
+
+
+!     The array KBO contains absorption coefs at the 16 chosen g-values 
+!     for a range of pressure levels < ~100mb and temperatures. The first 
+!     index in the array, JT, which runs from 1 to 5, corresponds to 
+!     different temperatures.  More specifically, JT = 3 means that the 
+!     data are for the reference temperature TREF for this pressure 
+!     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for
+!     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  
+!     The second index, JP, runs from 13 to 59 and refers to the JPth
+!     reference pressure level (see taumol.f for the value of these
+!     pressure levels in mb).  The third index, IG, goes from 1 to 16,
+!     and tells us which g-interval the absorption coefficients are for.
+
+
+
+     KAO_MN2(:, 1) = (/ &
+     & 5.12042E-08_JPRB, 5.51239E-08_JPRB, 5.93436E-08_JPRB, 6.38863E-08_JPRB, 6.87767E-08_JPRB, &
+     & 7.40415E-08_JPRB, 7.97093E-08_JPRB, 8.58110E-08_JPRB, 9.23797E-08_JPRB, 9.94513E-08_JPRB, &
+     & 1.07064E-07_JPRB, 1.15260E-07_JPRB, 1.24083E-07_JPRB, 1.33581E-07_JPRB, 1.43807E-07_JPRB, &
+     & 1.54815E-07_JPRB, 1.66666E-07_JPRB, 1.79424E-07_JPRB, 1.93159E-07_JPRB/)
+      KAO_MN2(:, 2) = (/ &
+     & 2.30938E-07_JPRB, 2.41696E-07_JPRB, 2.52955E-07_JPRB, 2.64738E-07_JPRB, 2.77071E-07_JPRB, &
+     & 2.89978E-07_JPRB, 3.03486E-07_JPRB, 3.17623E-07_JPRB, 3.32419E-07_JPRB, 3.47904E-07_JPRB, &
+     & 3.64111E-07_JPRB, 3.81072E-07_JPRB, 3.98824E-07_JPRB, 4.17402E-07_JPRB, 4.36846E-07_JPRB, &
+     & 4.57196E-07_JPRB, 4.78494E-07_JPRB, 5.00784E-07_JPRB, 5.24112E-07_JPRB/)
+      KAO_MN2(:, 3) = (/ &
+     & 6.70458E-07_JPRB, 7.04274E-07_JPRB, 7.39795E-07_JPRB, 7.77109E-07_JPRB, 8.16304E-07_JPRB, &
+     & 8.57476E-07_JPRB, 9.00724E-07_JPRB, 9.46154E-07_JPRB, 9.93876E-07_JPRB, 1.04400E-06_JPRB, &
+     & 1.09666E-06_JPRB, 1.15197E-06_JPRB, 1.21008E-06_JPRB, 1.27111E-06_JPRB, 1.33522E-06_JPRB, &
+     & 1.40256E-06_JPRB, 1.47331E-06_JPRB, 1.54761E-06_JPRB, 1.62567E-06_JPRB/)
+      KAO_MN2(:, 4) = (/ &
+     & 1.84182E-06_JPRB, 1.89203E-06_JPRB, 1.94360E-06_JPRB, 1.99658E-06_JPRB, 2.05101E-06_JPRB, &
+     & 2.10692E-06_JPRB, 2.16435E-06_JPRB, 2.22335E-06_JPRB, 2.28396E-06_JPRB, 2.34622E-06_JPRB, &
+     & 2.41017E-06_JPRB, 2.47587E-06_JPRB, 2.54337E-06_JPRB, 2.61270E-06_JPRB, 2.68392E-06_JPRB, &
+     & 2.75708E-06_JPRB, 2.83224E-06_JPRB, 2.90944E-06_JPRB, 2.98875E-06_JPRB/)
+      KAO_MN2(:, 5) = (/ &
+     & 3.41996E-06_JPRB, 3.32758E-06_JPRB, 3.23770E-06_JPRB, 3.15024E-06_JPRB, 3.06515E-06_JPRB, &
+     & 2.98235E-06_JPRB, 2.90180E-06_JPRB, 2.82341E-06_JPRB, 2.74715E-06_JPRB, 2.67294E-06_JPRB, &
+     & 2.60074E-06_JPRB, 2.53049E-06_JPRB, 2.46214E-06_JPRB, 2.39563E-06_JPRB, 2.33092E-06_JPRB, &
+     & 2.26796E-06_JPRB, 2.20670E-06_JPRB, 2.14709E-06_JPRB, 2.08910E-06_JPRB/)
+      KAO_MN2(:, 6) = (/ &
+     & 3.38746E-06_JPRB, 3.25966E-06_JPRB, 3.13669E-06_JPRB, 3.01836E-06_JPRB, 2.90449E-06_JPRB, &
+     & 2.79491E-06_JPRB, 2.68947E-06_JPRB, 2.58801E-06_JPRB, 2.49037E-06_JPRB, 2.39642E-06_JPRB, &
+     & 2.30601E-06_JPRB, 2.21902E-06_JPRB, 2.13530E-06_JPRB, 2.05475E-06_JPRB, 1.97723E-06_JPRB, &
+     & 1.90264E-06_JPRB, 1.83086E-06_JPRB, 1.76179E-06_JPRB, 1.69532E-06_JPRB/)
+      KAO_MN2(:, 7) = (/ &
+     & 3.17530E-06_JPRB, 3.07196E-06_JPRB, 2.97199E-06_JPRB, 2.87527E-06_JPRB, 2.78170E-06_JPRB, &
+     & 2.69118E-06_JPRB, 2.60360E-06_JPRB, 2.51887E-06_JPRB, 2.43690E-06_JPRB, 2.35759E-06_JPRB, &
+     & 2.28087E-06_JPRB, 2.20664E-06_JPRB, 2.13483E-06_JPRB, 2.06536E-06_JPRB, 1.99814E-06_JPRB, &
+     & 1.93312E-06_JPRB, 1.87021E-06_JPRB, 1.80934E-06_JPRB, 1.75046E-06_JPRB/)
+      KAO_MN2(:, 8) = (/ &
+     & 2.84701E-06_JPRB, 2.77007E-06_JPRB, 2.69521E-06_JPRB, 2.62237E-06_JPRB, 2.55150E-06_JPRB, &
+     & 2.48254E-06_JPRB, 2.41545E-06_JPRB, 2.35017E-06_JPRB, 2.28666E-06_JPRB, 2.22486E-06_JPRB, &
+     & 2.16473E-06_JPRB, 2.10623E-06_JPRB, 2.04930E-06_JPRB, 1.99392E-06_JPRB, 1.94003E-06_JPRB, &
+     & 1.88760E-06_JPRB, 1.83659E-06_JPRB, 1.78695E-06_JPRB, 1.73866E-06_JPRB/)
+      KAO_MN2(:, 9) = (/ &
+     & 2.79917E-06_JPRB, 2.73207E-06_JPRB, 2.66658E-06_JPRB, 2.60266E-06_JPRB, 2.54027E-06_JPRB, &
+     & 2.47937E-06_JPRB, 2.41994E-06_JPRB, 2.36192E-06_JPRB, 2.30530E-06_JPRB, 2.25004E-06_JPRB, &
+     & 2.19610E-06_JPRB, 2.14346E-06_JPRB, 2.09208E-06_JPRB, 2.04193E-06_JPRB, 1.99298E-06_JPRB, &
+     & 1.94520E-06_JPRB, 1.89857E-06_JPRB, 1.85306E-06_JPRB, 1.80864E-06_JPRB/)
+      KAO_MN2(:,10) = (/ &
+     & 2.74910E-06_JPRB, 2.64462E-06_JPRB, 2.54412E-06_JPRB, 2.44743E-06_JPRB, 2.35442E-06_JPRB, &
+     & 2.26495E-06_JPRB, 2.17887E-06_JPRB, 2.09606E-06_JPRB, 2.01641E-06_JPRB, 1.93978E-06_JPRB, &
+     & 1.86606E-06_JPRB, 1.79514E-06_JPRB, 1.72692E-06_JPRB, 1.66129E-06_JPRB, 1.59815E-06_JPRB, &
+     & 1.53742E-06_JPRB, 1.47899E-06_JPRB, 1.42278E-06_JPRB, 1.36871E-06_JPRB/)
+      KAO_MN2(:,11) = (/ &
+     & 2.63952E-06_JPRB, 2.60263E-06_JPRB, 2.56626E-06_JPRB, 2.53039E-06_JPRB, 2.49503E-06_JPRB, &
+     & 2.46016E-06_JPRB, 2.42578E-06_JPRB, 2.39188E-06_JPRB, 2.35845E-06_JPRB, 2.32549E-06_JPRB, &
+     & 2.29299E-06_JPRB, 2.26094E-06_JPRB, 2.22934E-06_JPRB, 2.19819E-06_JPRB, 2.16747E-06_JPRB, &
+     & 2.13717E-06_JPRB, 2.10731E-06_JPRB, 2.07786E-06_JPRB, 2.04882E-06_JPRB/)
+      KAO_MN2(:,12) = (/ &
+     & 2.94106E-06_JPRB, 2.82819E-06_JPRB, 2.71966E-06_JPRB, 2.61528E-06_JPRB, 2.51492E-06_JPRB, &
+     & 2.41841E-06_JPRB, 2.32560E-06_JPRB, 2.23635E-06_JPRB, 2.15053E-06_JPRB, 2.06800E-06_JPRB, &
+     & 1.98863E-06_JPRB, 1.91232E-06_JPRB, 1.83893E-06_JPRB, 1.76836E-06_JPRB, 1.70049E-06_JPRB, &
+     & 1.63524E-06_JPRB, 1.57248E-06_JPRB, 1.51214E-06_JPRB, 1.45411E-06_JPRB/)
+      KAO_MN2(:,13) = (/ &
+     & 2.94607E-06_JPRB, 2.87369E-06_JPRB, 2.80309E-06_JPRB, 2.73422E-06_JPRB, 2.66705E-06_JPRB, &
+     & 2.60152E-06_JPRB, 2.53760E-06_JPRB, 2.47526E-06_JPRB, 2.41445E-06_JPRB, 2.35513E-06_JPRB, &
+     & 2.29726E-06_JPRB, 2.24082E-06_JPRB, 2.18577E-06_JPRB, 2.13207E-06_JPRB, 2.07969E-06_JPRB, &
+     & 2.02859E-06_JPRB, 1.97875E-06_JPRB, 1.93014E-06_JPRB, 1.88272E-06_JPRB/)
+      KAO_MN2(:,14) = (/ &
+     & 2.58051E-06_JPRB, 2.48749E-06_JPRB, 2.39782E-06_JPRB, 2.31139E-06_JPRB, 2.22807E-06_JPRB, &
+     & 2.14775E-06_JPRB, 2.07033E-06_JPRB, 1.99570E-06_JPRB, 1.92376E-06_JPRB, 1.85441E-06_JPRB, &
+     & 1.78756E-06_JPRB, 1.72313E-06_JPRB, 1.66101E-06_JPRB, 1.60114E-06_JPRB, 1.54342E-06_JPRB, &
+     & 1.48778E-06_JPRB, 1.43415E-06_JPRB, 1.38245E-06_JPRB, 1.33262E-06_JPRB/)
+      KAO_MN2(:,15) = (/ &
+     & 3.03447E-06_JPRB, 2.88559E-06_JPRB, 2.74401E-06_JPRB, 2.60938E-06_JPRB, 2.48135E-06_JPRB, &
+     & 2.35961E-06_JPRB, 2.24384E-06_JPRB, 2.13375E-06_JPRB, 2.02906E-06_JPRB, 1.92951E-06_JPRB, &
+     & 1.83484E-06_JPRB, 1.74481E-06_JPRB, 1.65921E-06_JPRB, 1.57780E-06_JPRB, 1.50039E-06_JPRB, &
+     & 1.42677E-06_JPRB, 1.35677E-06_JPRB, 1.29020E-06_JPRB, 1.22690E-06_JPRB/)
+      KAO_MN2(:,16) = (/ &
+     & 1.48655E-06_JPRB, 1.48283E-06_JPRB, 1.47913E-06_JPRB, 1.47543E-06_JPRB, 1.47174E-06_JPRB, &
+     & 1.46806E-06_JPRB, 1.46439E-06_JPRB, 1.46072E-06_JPRB, 1.45707E-06_JPRB, 1.45343E-06_JPRB, &
+     & 1.44979E-06_JPRB, 1.44617E-06_JPRB, 1.44255E-06_JPRB, 1.43894E-06_JPRB, 1.43534E-06_JPRB, &
+     & 1.43176E-06_JPRB, 1.42817E-06_JPRB, 1.42460E-06_JPRB, 1.42104E-06_JPRB/)
+      KBO_MN2(:, 1) = (/ &
+     & 5.12042E-08_JPRB, 5.51239E-08_JPRB, 5.93436E-08_JPRB, 6.38863E-08_JPRB, 6.87767E-08_JPRB, &
+     & 7.40415E-08_JPRB, 7.97093E-08_JPRB, 8.58110E-08_JPRB, 9.23797E-08_JPRB, 9.94513E-08_JPRB, &
+     & 1.07064E-07_JPRB, 1.15260E-07_JPRB, 1.24083E-07_JPRB, 1.33581E-07_JPRB, 1.43807E-07_JPRB, &
+     & 1.54815E-07_JPRB, 1.66666E-07_JPRB, 1.79424E-07_JPRB, 1.93159E-07_JPRB/)
+      KBO_MN2(:, 2) = (/ &
+     & 2.30938E-07_JPRB, 2.41696E-07_JPRB, 2.52955E-07_JPRB, 2.64738E-07_JPRB, 2.77071E-07_JPRB, &
+     & 2.89978E-07_JPRB, 3.03486E-07_JPRB, 3.17623E-07_JPRB, 3.32419E-07_JPRB, 3.47904E-07_JPRB, &
+     & 3.64111E-07_JPRB, 3.81072E-07_JPRB, 3.98824E-07_JPRB, 4.17402E-07_JPRB, 4.36846E-07_JPRB, &
+     & 4.57196E-07_JPRB, 4.78494E-07_JPRB, 5.00784E-07_JPRB, 5.24112E-07_JPRB/)
+      KBO_MN2(:, 3) = (/ &
+     & 6.70458E-07_JPRB, 7.04274E-07_JPRB, 7.39795E-07_JPRB, 7.77109E-07_JPRB, 8.16304E-07_JPRB, &
+     & 8.57476E-07_JPRB, 9.00724E-07_JPRB, 9.46154E-07_JPRB, 9.93876E-07_JPRB, 1.04400E-06_JPRB, &
+     & 1.09666E-06_JPRB, 1.15197E-06_JPRB, 1.21008E-06_JPRB, 1.27111E-06_JPRB, 1.33522E-06_JPRB, &
+     & 1.40256E-06_JPRB, 1.47331E-06_JPRB, 1.54761E-06_JPRB, 1.62567E-06_JPRB/)
+      KBO_MN2(:, 4) = (/ &
+     & 1.84182E-06_JPRB, 1.89203E-06_JPRB, 1.94360E-06_JPRB, 1.99658E-06_JPRB, 2.05101E-06_JPRB, &
+     & 2.10692E-06_JPRB, 2.16435E-06_JPRB, 2.22335E-06_JPRB, 2.28396E-06_JPRB, 2.34622E-06_JPRB, &
+     & 2.41017E-06_JPRB, 2.47587E-06_JPRB, 2.54337E-06_JPRB, 2.61270E-06_JPRB, 2.68392E-06_JPRB, &
+     & 2.75708E-06_JPRB, 2.83224E-06_JPRB, 2.90944E-06_JPRB, 2.98875E-06_JPRB/)
+      KBO_MN2(:, 5) = (/ &
+     & 3.41996E-06_JPRB, 3.32758E-06_JPRB, 3.23770E-06_JPRB, 3.15024E-06_JPRB, 3.06515E-06_JPRB, &
+     & 2.98235E-06_JPRB, 2.90180E-06_JPRB, 2.82341E-06_JPRB, 2.74715E-06_JPRB, 2.67294E-06_JPRB, &
+     & 2.60074E-06_JPRB, 2.53049E-06_JPRB, 2.46214E-06_JPRB, 2.39563E-06_JPRB, 2.33092E-06_JPRB, &
+     & 2.26796E-06_JPRB, 2.20670E-06_JPRB, 2.14709E-06_JPRB, 2.08910E-06_JPRB/)
+      KBO_MN2(:, 6) = (/ &
+     & 3.38746E-06_JPRB, 3.25966E-06_JPRB, 3.13669E-06_JPRB, 3.01836E-06_JPRB, 2.90449E-06_JPRB, &
+     & 2.79491E-06_JPRB, 2.68947E-06_JPRB, 2.58801E-06_JPRB, 2.49037E-06_JPRB, 2.39642E-06_JPRB, &
+     & 2.30601E-06_JPRB, 2.21902E-06_JPRB, 2.13530E-06_JPRB, 2.05475E-06_JPRB, 1.97723E-06_JPRB, &
+     & 1.90264E-06_JPRB, 1.83086E-06_JPRB, 1.76179E-06_JPRB, 1.69532E-06_JPRB/)
+      KBO_MN2(:, 7) = (/ &
+     & 3.17530E-06_JPRB, 3.07196E-06_JPRB, 2.97199E-06_JPRB, 2.87527E-06_JPRB, 2.78170E-06_JPRB, &
+     & 2.69118E-06_JPRB, 2.60360E-06_JPRB, 2.51887E-06_JPRB, 2.43690E-06_JPRB, 2.35759E-06_JPRB, &
+     & 2.28087E-06_JPRB, 2.20664E-06_JPRB, 2.13483E-06_JPRB, 2.06536E-06_JPRB, 1.99814E-06_JPRB, &
+     & 1.93312E-06_JPRB, 1.87021E-06_JPRB, 1.80934E-06_JPRB, 1.75046E-06_JPRB/)
+      KBO_MN2(:, 8) = (/ &
+     & 2.84701E-06_JPRB, 2.77007E-06_JPRB, 2.69521E-06_JPRB, 2.62237E-06_JPRB, 2.55150E-06_JPRB, &
+     & 2.48254E-06_JPRB, 2.41545E-06_JPRB, 2.35017E-06_JPRB, 2.28666E-06_JPRB, 2.22486E-06_JPRB, &
+     & 2.16473E-06_JPRB, 2.10623E-06_JPRB, 2.04930E-06_JPRB, 1.99392E-06_JPRB, 1.94003E-06_JPRB, &
+     & 1.88760E-06_JPRB, 1.83659E-06_JPRB, 1.78695E-06_JPRB, 1.73866E-06_JPRB/)
+      KBO_MN2(:, 9) = (/ &
+     & 2.79917E-06_JPRB, 2.73207E-06_JPRB, 2.66658E-06_JPRB, 2.60266E-06_JPRB, 2.54027E-06_JPRB, &
+     & 2.47937E-06_JPRB, 2.41994E-06_JPRB, 2.36192E-06_JPRB, 2.30530E-06_JPRB, 2.25004E-06_JPRB, &
+     & 2.19610E-06_JPRB, 2.14346E-06_JPRB, 2.09208E-06_JPRB, 2.04193E-06_JPRB, 1.99298E-06_JPRB, &
+     & 1.94520E-06_JPRB, 1.89857E-06_JPRB, 1.85306E-06_JPRB, 1.80864E-06_JPRB/)
+      KBO_MN2(:,10) = (/ &
+     & 2.74910E-06_JPRB, 2.64462E-06_JPRB, 2.54412E-06_JPRB, 2.44743E-06_JPRB, 2.35442E-06_JPRB, &
+     & 2.26495E-06_JPRB, 2.17887E-06_JPRB, 2.09606E-06_JPRB, 2.01641E-06_JPRB, 1.93978E-06_JPRB, &
+     & 1.86606E-06_JPRB, 1.79514E-06_JPRB, 1.72692E-06_JPRB, 1.66129E-06_JPRB, 1.59815E-06_JPRB, &
+     & 1.53742E-06_JPRB, 1.47899E-06_JPRB, 1.42278E-06_JPRB, 1.36871E-06_JPRB/)
+      KBO_MN2(:,11) = (/ &
+     & 2.63952E-06_JPRB, 2.60263E-06_JPRB, 2.56626E-06_JPRB, 2.53039E-06_JPRB, 2.49503E-06_JPRB, &
+     & 2.46016E-06_JPRB, 2.42578E-06_JPRB, 2.39188E-06_JPRB, 2.35845E-06_JPRB, 2.32549E-06_JPRB, &
+     & 2.29299E-06_JPRB, 2.26094E-06_JPRB, 2.22934E-06_JPRB, 2.19819E-06_JPRB, 2.16747E-06_JPRB, &
+     & 2.13717E-06_JPRB, 2.10731E-06_JPRB, 2.07786E-06_JPRB, 2.04882E-06_JPRB/)
+      KBO_MN2(:,12) = (/ &
+     & 2.94106E-06_JPRB, 2.82819E-06_JPRB, 2.71966E-06_JPRB, 2.61528E-06_JPRB, 2.51492E-06_JPRB, &
+     & 2.41841E-06_JPRB, 2.32560E-06_JPRB, 2.23635E-06_JPRB, 2.15053E-06_JPRB, 2.06800E-06_JPRB, &
+     & 1.98863E-06_JPRB, 1.91232E-06_JPRB, 1.83893E-06_JPRB, 1.76836E-06_JPRB, 1.70049E-06_JPRB, &
+     & 1.63524E-06_JPRB, 1.57248E-06_JPRB, 1.51214E-06_JPRB, 1.45411E-06_JPRB/)
+      KBO_MN2(:,13) = (/ &
+     & 2.94607E-06_JPRB, 2.87369E-06_JPRB, 2.80309E-06_JPRB, 2.73422E-06_JPRB, 2.66705E-06_JPRB, &
+     & 2.60152E-06_JPRB, 2.53760E-06_JPRB, 2.47526E-06_JPRB, 2.41445E-06_JPRB, 2.35513E-06_JPRB, &
+     & 2.29726E-06_JPRB, 2.24082E-06_JPRB, 2.18577E-06_JPRB, 2.13207E-06_JPRB, 2.07969E-06_JPRB, &
+     & 2.02859E-06_JPRB, 1.97875E-06_JPRB, 1.93014E-06_JPRB, 1.88272E-06_JPRB/)
+      KBO_MN2(:,14) = (/ &
+     & 2.58051E-06_JPRB, 2.48749E-06_JPRB, 2.39782E-06_JPRB, 2.31139E-06_JPRB, 2.22807E-06_JPRB, &
+     & 2.14775E-06_JPRB, 2.07033E-06_JPRB, 1.99570E-06_JPRB, 1.92376E-06_JPRB, 1.85441E-06_JPRB, &
+     & 1.78756E-06_JPRB, 1.72313E-06_JPRB, 1.66101E-06_JPRB, 1.60114E-06_JPRB, 1.54342E-06_JPRB, &
+     & 1.48778E-06_JPRB, 1.43415E-06_JPRB, 1.38245E-06_JPRB, 1.33262E-06_JPRB/)
+      KBO_MN2(:,15) = (/ &
+     & 3.03447E-06_JPRB, 2.88559E-06_JPRB, 2.74401E-06_JPRB, 2.60938E-06_JPRB, 2.48135E-06_JPRB, &
+     & 2.35961E-06_JPRB, 2.24384E-06_JPRB, 2.13375E-06_JPRB, 2.02906E-06_JPRB, 1.92951E-06_JPRB, &
+     & 1.83484E-06_JPRB, 1.74481E-06_JPRB, 1.65921E-06_JPRB, 1.57780E-06_JPRB, 1.50039E-06_JPRB, &
+     & 1.42677E-06_JPRB, 1.35677E-06_JPRB, 1.29020E-06_JPRB, 1.22690E-06_JPRB/)
+      KBO_MN2(:,16) = (/ &
+     & 1.48655E-06_JPRB, 1.48283E-06_JPRB, 1.47913E-06_JPRB, 1.47543E-06_JPRB, 1.47174E-06_JPRB, &
+     & 1.46806E-06_JPRB, 1.46439E-06_JPRB, 1.46072E-06_JPRB, 1.45707E-06_JPRB, 1.45343E-06_JPRB, &
+     & 1.44979E-06_JPRB, 1.44617E-06_JPRB, 1.44255E-06_JPRB, 1.43894E-06_JPRB, 1.43534E-06_JPRB, &
+     & 1.43176E-06_JPRB, 1.42817E-06_JPRB, 1.42460E-06_JPRB, 1.42104E-06_JPRB/)
+
+
+!     The array SELFREFO contains the coefficient of the water vapor
+!     self-continuum (including the energy term).  The first index
+!     refers to temperature in 7.2 degree increments.  For instance,
+!     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8,
+!     etc.  The second index runs over the g-channel (1 to 16).
+
+      SELFREFO(:, 1) = (/ &
+     & 2.16803e+00_JPRB, 1.98236e+00_JPRB, 1.81260e+00_JPRB, 1.65737e+00_JPRB, 1.51544e+00_JPRB, &
+     & 1.38567e+00_JPRB, 1.26700e+00_JPRB, 1.15850e+00_JPRB, 1.05929e+00_JPRB, 9.68576e-01_JPRB/)
+      SELFREFO(:, 2) = (/ &
+     & 3.70149e+00_JPRB, 3.43145e+00_JPRB, 3.18110e+00_JPRB, 2.94902e+00_JPRB, 2.73387e+00_JPRB, &
+     & 2.53441e+00_JPRB, 2.34951e+00_JPRB, 2.17810e+00_JPRB, 2.01919e+00_JPRB, 1.87188e+00_JPRB/)
+      SELFREFO(:, 3) = (/ &
+     & 6.17433e+00_JPRB, 5.62207e+00_JPRB, 5.11920e+00_JPRB, 4.66131e+00_JPRB, 4.24438e+00_JPRB, &
+     & 3.86474e+00_JPRB, 3.51906e+00_JPRB, 3.20430e+00_JPRB, 2.91769e+00_JPRB, 2.65672e+00_JPRB/)
+      SELFREFO(:, 4) = (/ &
+     & 6.56459e+00_JPRB, 5.94787e+00_JPRB, 5.38910e+00_JPRB, 4.88282e+00_JPRB, 4.42410e+00_JPRB, &
+     & 4.00848e+00_JPRB, 3.63190e+00_JPRB, 3.29070e+00_JPRB, 2.98155e+00_JPRB, 2.70145e+00_JPRB/)
+      SELFREFO(:, 5) = (/ &
+     & 6.49581e+00_JPRB, 5.91114e+00_JPRB, 5.37910e+00_JPRB, 4.89494e+00_JPRB, 4.45436e+00_JPRB, &
+     & 4.05344e+00_JPRB, 3.68860e+00_JPRB, 3.35660e+00_JPRB, 3.05448e+00_JPRB, 2.77956e+00_JPRB/)
+      SELFREFO(:, 6) = (/ &
+     & 6.50189e+00_JPRB, 5.89381e+00_JPRB, 5.34260e+00_JPRB, 4.84294e+00_JPRB, 4.39001e+00_JPRB, &
+     & 3.97944e+00_JPRB, 3.60727e+00_JPRB, 3.26990e+00_JPRB, 2.96409e+00_JPRB, 2.68687e+00_JPRB/)
+      SELFREFO(:, 7) = (/ &
+     & 6.64768e+00_JPRB, 6.01719e+00_JPRB, 5.44650e+00_JPRB, 4.92993e+00_JPRB, 4.46236e+00_JPRB, &
+     & 4.03914e+00_JPRB, 3.65605e+00_JPRB, 3.30930e+00_JPRB, 2.99543e+00_JPRB, 2.71134e+00_JPRB/)
+      SELFREFO(:, 8) = (/ &
+     & 6.43744e+00_JPRB, 5.87166e+00_JPRB, 5.35560e+00_JPRB, 4.88490e+00_JPRB, 4.45557e+00_JPRB, &
+     & 4.06397e+00_JPRB, 3.70679e+00_JPRB, 3.38100e+00_JPRB, 3.08384e+00_JPRB, 2.81281e+00_JPRB/)
+      SELFREFO(:, 9) = (/ &
+     & 6.55466e+00_JPRB, 5.99777e+00_JPRB, 5.48820e+00_JPRB, 5.02192e+00_JPRB, 4.59525e+00_JPRB, &
+     & 4.20484e+00_JPRB, 3.84759e+00_JPRB, 3.52070e+00_JPRB, 3.22158e+00_JPRB, 2.94787e+00_JPRB/)
+      SELFREFO(:,10) = (/ &
+     & 6.84510e+00_JPRB, 6.26933e+00_JPRB, 5.74200e+00_JPRB, 5.25902e+00_JPRB, 4.81667e+00_JPRB, &
+     & 4.41152e+00_JPRB, 4.04046e+00_JPRB, 3.70060e+00_JPRB, 3.38933e+00_JPRB, 3.10424e+00_JPRB/)
+      SELFREFO(:,11) = (/ &
+     & 6.83128e+00_JPRB, 6.25536e+00_JPRB, 5.72800e+00_JPRB, 5.24510e+00_JPRB, 4.80291e+00_JPRB, &
+     & 4.39799e+00_JPRB, 4.02722e+00_JPRB, 3.68770e+00_JPRB, 3.37681e+00_JPRB, 3.09212e+00_JPRB/)
+      SELFREFO(:,12) = (/ &
+     & 7.35969e+00_JPRB, 6.61719e+00_JPRB, 5.94960e+00_JPRB, 5.34936e+00_JPRB, 4.80968e+00_JPRB, &
+     & 4.32445e+00_JPRB, 3.88817e+00_JPRB, 3.49590e+00_JPRB, 3.14321e+00_JPRB, 2.82610e+00_JPRB/)
+      SELFREFO(:,13) = (/ &
+     & 7.50064e+00_JPRB, 6.80749e+00_JPRB, 6.17840e+00_JPRB, 5.60744e+00_JPRB, 5.08925e+00_JPRB, &
+     & 4.61894e+00_JPRB, 4.19210e+00_JPRB, 3.80470e+00_JPRB, 3.45310e+00_JPRB, 3.13399e+00_JPRB/)
+      SELFREFO(:,14) = (/ &
+     & 7.40801e+00_JPRB, 6.71328e+00_JPRB, 6.08370e+00_JPRB, 5.51316e+00_JPRB, 4.99613e+00_JPRB, &
+     & 4.52759e+00_JPRB, 4.10298e+00_JPRB, 3.71820e+00_JPRB, 3.36950e+00_JPRB, 3.05351e+00_JPRB/)
+      SELFREFO(:,15) = (/ &
+     & 7.51895e+00_JPRB, 6.68846e+00_JPRB, 5.94970e+00_JPRB, 5.29254e+00_JPRB, 4.70796e+00_JPRB, &
+     & 4.18795e+00_JPRB, 3.72538e+00_JPRB, 3.31390e+00_JPRB, 2.94787e+00_JPRB, 2.62227e+00_JPRB/)
+      SELFREFO(:,16) = (/ &
+     & 7.84774e+00_JPRB, 6.80673e+00_JPRB, 5.90380e+00_JPRB, 5.12065e+00_JPRB, 4.44138e+00_JPRB, &
+     & 3.85223e+00_JPRB, 3.34122e+00_JPRB, 2.89800e+00_JPRB, 2.51357e+00_JPRB, 2.18014e+00_JPRB/)
+
+
+
+
+
+IF (LHOOK) CALL DR_HOOK('RRTM_KGB1',1,ZHOOK_HANDLE)
+RETURN
+
+1000 CONTINUE
+CALL ABOR1("RRTM_KGB1:ERROR OPENING FILE RADRRTM")
+1001 CONTINUE
+CALL ABOR1("RRTM_KGB1:ERROR READING FILE RADRRTM")
+
+!     -----------------------------------------------------------------
+END SUBROUTINE RRTM_KGB1
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/srtm_gas_optical_depth.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/srtm_gas_optical_depth.F90
new file mode 100644
index 0000000000000000000000000000000000000000..db5aaf1383b545902a87aeae434f979d9157b279
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/srtm_gas_optical_depth.F90
@@ -0,0 +1,338 @@
+#ifdef RS6K
+@PROCESS HOT(NOVECTOR) NOSTRICT
+#endif
+SUBROUTINE SRTM_GAS_OPTICAL_DEPTH &
+ & ( KIDIA   , KFDIA   , KLEV    , PONEMINUS, &
+ &   PRMU0, &
+ &   KLAYTROP,&
+ &   PCOLCH4  , PCOLCO2 , PCOLH2O , PCOLMOL  , PCOLO2 , PCOLO3 ,&
+ &   PFORFAC , PFORFRAC , KINDFOR , PSELFFAC, PSELFFRAC, KINDSELF ,&
+ &   PFAC00  , PFAC01   , PFAC10  , PFAC11 ,&
+ &   KJP     , KJT      , KJT1 ,&
+ !-- output arrays 
+ &   POD, PSSA, PINCSOL)
+
+
+!**** *SRTM_GAS_OPTICAL_DEPTH* - SPECTRAL LOOP TO COMPUTE THE SHORTWAVE RADIATION FLUXES.
+
+!     PURPOSE.
+!     --------
+
+!          COMPUTE THE GAS OPTICAL DEPTH AT EACH SHORTWAVE G POINT
+
+!**   INTERFACE.
+!     ----------
+
+!          *SRTM_GAS_OPTICAL_DEPTH* IS CALLED FROM THE NEW RADIATION SCHEME
+
+!        IMPLICIT ARGUMENTS :
+!        --------------------
+
+!     ==== INPUTS ===
+!     ==== OUTPUTS ===
+
+!     METHOD.
+!     -------
+
+!     EXTERNALS.
+!     ----------
+
+!     REFERENCE.
+!     ----------
+
+!        SEE RADIATION'S PART OF THE ECMWF RESEARCH DEPARTMENT
+!        DOCUMENTATION
+!     AUTHOR.
+!     -------
+!        ADAPTED FROM SRTM_SPCVRT_MCICA (BY JEAN-JACQUES MORCRETTE) BY
+!        ROBIN HOGAN
+!
+!     MODIFICATIONS.
+!     --------------
+!        ORIGINAL : 2015-07-16
+
+!     ------------------------------------------------------------------
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+USE YOMHOOK  , ONLY : LHOOK, DR_HOOK
+USE PARSRTM  , ONLY : JPB1, JPB2
+USE YOESRTM  , ONLY : JPGPT
+USE YOESRTWN , ONLY : NGC
+USE YOMDIMV  , ONLY : YRDIMV
+
+IMPLICIT NONE
+
+!     ------------------------------------------------------------------
+
+!*       0.1   ARGUMENTS
+!              ---------
+
+INTEGER(KIND=JPIM),INTENT(IN)    :: KIDIA, KFDIA
+INTEGER(KIND=JPIM),INTENT(IN)    :: KLEV
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PONEMINUS(KIDIA:KFDIA)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PRMU0(KIDIA:KFDIA)
+INTEGER(KIND=JPIM),INTENT(IN)    :: KLAYTROP(KIDIA:KFDIA)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PCOLCH4(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PCOLCO2(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PCOLH2O(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PCOLMOL(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PCOLO2(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PCOLO3(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PFORFAC(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PFORFRAC(KIDIA:KFDIA,YRDIMV%NFLEVG)
+INTEGER(KIND=JPIM),INTENT(IN)    :: KINDFOR(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PSELFFAC(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PSELFFRAC(KIDIA:KFDIA,YRDIMV%NFLEVG)
+INTEGER(KIND=JPIM),INTENT(IN)    :: KINDSELF(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PFAC00(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PFAC01(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PFAC10(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB)   ,INTENT(IN)    :: PFAC11(KIDIA:KFDIA,YRDIMV%NFLEVG)
+INTEGER(KIND=JPIM),INTENT(IN)    :: KJP(KIDIA:KFDIA,YRDIMV%NFLEVG)
+INTEGER(KIND=JPIM),INTENT(IN)    :: KJT(KIDIA:KFDIA,YRDIMV%NFLEVG)
+INTEGER(KIND=JPIM),INTENT(IN)    :: KJT1(KIDIA:KFDIA,YRDIMV%NFLEVG)
+
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: POD(KIDIA:KFDIA,YRDIMV%NFLEVG,JPGPT) ! Optical depth
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: PSSA(KIDIA:KFDIA,YRDIMV%NFLEVG,JPGPT) ! Single scattering albedo
+REAL(KIND=JPRB)   ,INTENT(OUT)   :: PINCSOL(KIDIA:KFDIA,JPGPT) ! Incoming solar flux
+
+
+!     ------------------------------------------------------------------
+
+INTEGER(KIND=JPIM) :: IB1, IB2, IBM, IGT, IW(KIDIA:KFDIA), JB, JG, JK, JL, IC, ICOUNT
+
+INTEGER(KIND=JPIM) :: IND(KFDIA-KIDIA+1)
+
+
+!-- Output of SRTM_TAUMOLn routines
+REAL(KIND=JPRB) :: ZTAUG(KIDIA:KFDIA,YRDIMV%NFLEVG,16) ! Absorption optical depth
+REAL(KIND=JPRB) :: ZTAUR(KIDIA:KFDIA,YRDIMV%NFLEVG,16) ! Rayleigh optical depth
+REAL(KIND=JPRB) :: ZSFLXZEN(KIDIA:KFDIA,16) ! Incoming solar flux
+
+
+REAL(KIND=JPRB) :: ZTAU, ZPAO, ZPTO
+REAL(KIND=JPRB) :: ZPAOJ(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB) :: ZPTOJ(KIDIA:KFDIA,YRDIMV%NFLEVG)
+REAL(KIND=JPRB) :: ZRMU0D(KIDIA:KFDIA) 
+ 
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+
+#include "srtm_taumol16.intfb.h"
+#include "srtm_taumol17.intfb.h"
+#include "srtm_taumol18.intfb.h"
+#include "srtm_taumol19.intfb.h"
+#include "srtm_taumol20.intfb.h"
+#include "srtm_taumol21.intfb.h"
+#include "srtm_taumol22.intfb.h"
+#include "srtm_taumol23.intfb.h"
+#include "srtm_taumol24.intfb.h"
+#include "srtm_taumol25.intfb.h"
+#include "srtm_taumol26.intfb.h"
+#include "srtm_taumol27.intfb.h"
+#include "srtm_taumol28.intfb.h"
+#include "srtm_taumol29.intfb.h"
+
+!     ------------------------------------------------------------------
+ASSOCIATE(NFLEVG=>YRDIMV%NFLEVG)
+IF (LHOOK) CALL DR_HOOK('SRTM_GAS_OPTICAL_DEPTH',0,ZHOOK_HANDLE)
+
+IB1=JPB1
+IB2=JPB2
+
+IC=0
+DO JL = KIDIA, KFDIA
+  IF (PRMU0(JL) > 0.0_JPRB) THEN
+    IC=IC+1
+    IND(IC)=JL
+    IW(JL)=0
+  ENDIF
+ENDDO
+ICOUNT=IC
+IF(ICOUNT==0)THEN
+   POD = 0.0
+   PSSA = 0.0
+   PINCSOL = 0.0
+  IF (LHOOK) CALL DR_HOOK('SRTM_SPCVRT_MCICA',1,ZHOOK_HANDLE)
+  RETURN
+ENDIF
+
+JB=IB1-1
+DO JB = IB1, IB2
+  DO IC=1,ICOUNT
+    JL=IND(IC)
+    IBM = JB-15
+    IGT = NGC(IBM)
+  ENDDO
+
+  !-- for each band, computes the gaseous and Rayleigh optical thickness 
+  !  for all g-points within the band
+
+  IF (JB == 16) THEN
+    CALL SRTM_TAUMOL16 &
+     & ( KIDIA   , KFDIA    , KLEV    ,&
+     &   PFAC00  , PFAC01   , PFAC10   , PFAC11   ,&
+     &   KJP     , KJT      , KJT1     , PONEMINUS,&
+     &   PCOLH2O , PCOLCH4  , PCOLMOL  ,&
+     &   KLAYTROP, PSELFFAC , PSELFFRAC, KINDSELF, PFORFAC  , PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG    , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 17) THEN
+    CALL SRTM_TAUMOL17 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     , PONEMINUS ,&
+     &   PCOLH2O , PCOLCO2 , PCOLMOL  ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 18) THEN
+    CALL SRTM_TAUMOL18 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     , PONEMINUS ,&
+     &   PCOLH2O , PCOLCH4 , PCOLMOL  ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 19) THEN
+    CALL SRTM_TAUMOL19 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     , PONEMINUS ,&
+     &   PCOLH2O , PCOLCO2 , PCOLMOL  ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 20) THEN
+    CALL SRTM_TAUMOL20 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     ,&
+     &   PCOLH2O , PCOLCH4 , PCOLMOL  ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 21) THEN
+    CALL SRTM_TAUMOL21 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     , PONEMINUS ,&
+     &   PCOLH2O , PCOLCO2 , PCOLMOL  ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 22) THEN
+    CALL SRTM_TAUMOL22 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     , PONEMINUS ,&
+     &   PCOLH2O , PCOLMOL , PCOLO2   ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 23) THEN
+    CALL SRTM_TAUMOL23 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     ,&
+     &   PCOLH2O , PCOLMOL ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 24) THEN
+    CALL SRTM_TAUMOL24 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     , PONEMINUS ,&
+     &   PCOLH2O , PCOLMOL , PCOLO2   , PCOLO3 ,&
+     &   KLAYTROP, PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 25) THEN
+    !--- visible 16000-22650 cm-1   0.4415 - 0.6250 um
+    CALL SRTM_TAUMOL25 &
+     & ( KIDIA    , KFDIA   , KLEV     ,&
+     &   PFAC00   , PFAC01  , PFAC10 , PFAC11 ,&
+     &   KJP      , KJT     , KJT1   ,&
+     &   PCOLH2O  , PCOLMOL , PCOLO3 ,&
+     &   KLAYTROP ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR   , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 26) THEN
+    !--- UV-A 22650-29000 cm-1   0.3448 - 0.4415 um
+    CALL SRTM_TAUMOL26 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PCOLMOL ,KLAYTROP,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 27) THEN
+    !--- UV-B 29000-38000 cm-1   0.2632 - 0.3448 um
+    CALL SRTM_TAUMOL27 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP     , KJT     , KJT1     ,&
+     &   PCOLMOL , PCOLO3 ,&
+     &   KLAYTROP ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 28) THEN
+    !--- UV-C 38000-50000 cm-1   0.2000 - 0.2632 um
+    CALL SRTM_TAUMOL28 &
+     & ( KIDIA   , KFDIA   , KLEV    ,&
+     &   PFAC00  , PFAC01  , PFAC10 , PFAC11 ,&
+     &   KJP     , KJT     , KJT1   , PONEMINUS ,&
+     &   PCOLMOL , PCOLO2  , PCOLO3 ,&
+     &   KLAYTROP ,&
+     &   ZSFLXZEN, ZTAUG   , ZTAUR  , PRMU0     &
+     & )  
+
+  ELSEIF (JB == 29) THEN
+    CALL SRTM_TAUMOL29 &
+     & ( KIDIA    , KFDIA   , KLEV     ,&
+     &   PFAC00   , PFAC01  , PFAC10   , PFAC11 ,&
+     &   KJP      , KJT     , KJT1     ,&
+     &   PCOLH2O  , PCOLCO2 , PCOLMOL  ,&
+     &   KLAYTROP , PSELFFAC, PSELFFRAC, KINDSELF  , PFORFAC, PFORFRAC, KINDFOR ,&
+     &   ZSFLXZEN , ZTAUG   , ZTAUR    , PRMU0     &
+     & )  
+
+  ENDIF
+   
+  DO JG=1,IGT
+    DO IC=1,ICOUNT
+      JL=IND(IC)
+      IW(JL)=IW(JL)+1
+
+      ! Incoming solar flux into plane perp to incoming radiation
+      PINCSOL(JL,IW(JL)) = ZSFLXZEN(JL,JG)
+    ENDDO
+
+    DO JK=1,KLEV
+      DO IC=1,ICOUNT
+        JL=IND(IC)
+        POD (JL,JK,IW(JL)) = ZTAUR(JL,JK,JG) + ZTAUG(JL,JK,JG)
+        PSSA(JL,JK,IW(JL)) = ZTAUR(JL,JK,JG) / POD(JL,JK,IW(JL))
+      ENDDO
+    ENDDO
+
+  ENDDO   !-- end loop on JG (g point)
+
+ENDDO     !-- end loop on JB (band)
+
+!     ------------------------------------------------------------------
+IF (LHOOK) CALL DR_HOOK('SRTM_GAS_OPTICAL_DEPTH',1,ZHOOK_HANDLE)
+END ASSOCIATE
+END SUBROUTINE SRTM_GAS_OPTICAL_DEPTH
diff --git a/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/srtm_kgb16.F90 b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/srtm_kgb16.F90
new file mode 100644
index 0000000000000000000000000000000000000000..7e589efd97594e9f9b57e105724dfdc56135170c
--- /dev/null
+++ b/src/LIB/RAD/ecrad-1.0.1_mnh/ifsrrtm/srtm_kgb16.F90
@@ -0,0 +1,184 @@
+SUBROUTINE SRTM_KGB16(DIRECTORY)
+
+!     Originally by J.Delamere, Atmospheric & Environmental Research.
+!     Revision: 2.4
+!     BAND 16:  2600-3000 cm-1 (low - H2O,CH4; high - nothing)
+!     Reformatted for F90 by JJMorcrette, ECMWF
+!     R. Elkhatib 12-10-2005 Split for faster and more robust compilation.
+!     G.Mozdzynski March 2011 read constants from files
+!     T. Wilhelmsson and K. Yessad (Oct 2013) Geometry and setup refactoring.
+!     ------------------------------------------------------------------
+
+USE PARKIND1  , ONLY : JPRB
+USE YOMHOOK   , ONLY : LHOOK, DR_HOOK
+USE YOMLUN    , ONLY : NULRAD
+USE YOMMP0    , ONLY : NPROC, MYPROC
+USE MPL_MODULE, ONLY : MPL_BROADCAST
+USE YOMTAG    , ONLY : MTAGRAD
+USE YOESRTA16 , ONLY : KA, KB, SELFREF, FORREF, SFLUXREF, RAYL, STRRAT1, LAYREFFR
+
+!     ------------------------------------------------------------------
+
+IMPLICIT NONE
+
+CHARACTER(LEN=*), INTENT(IN) :: DIRECTORY
+
+! KURUCZ
+!CHARACTER(LEN = 80) :: CLZZZ
+CHARACTER(LEN = 80) :: CLF1
+REAL(KIND=JPRB) :: ZHOOK_HANDLE
+
+#include "abor1.intfb.h"
+
+IF (LHOOK) CALL DR_HOOK('SRTM_KGB16',0,ZHOOK_HANDLE)
+
+IF( MYPROC==1 )THEN
+  !CALL GETENV("DATA",CLZZZ)
+  !IF(CLZZZ /= " ") THEN
+  !  CLF1=TRIM(CLZZZ)//"/RADSRTM"
+  CLF1 = DIRECTORY // "/RADSRTM"
+  WRITE(0,'(A,A)') 'Reading ',TRIM(CLF1)
+  ! RRTM and SRTM files from ecrad are in big-endian format.
+  ! Here they are covnerted into little-endian at opening
+  ! No need for compialtion option export GFORTRAN_CONVERT_UNIT="little_endian;big_endian:145"
+!   OPEN(NULRAD,FILE=TRIM(CLF1),FORM="UNFORMATTED",ACTION="READ",access='sequential',ERR=1000,CONVERT='swap')
+
+  OPEN(NULRAD,FILE=TRIM(CLF1),FORM="UNFORMATTED",ACTION="READ",access='sequential',ERR=1000,CONVERT='BIG_ENDIAN')
+  !ELSE
+  !  OPEN(NULRAD,FILE='RADSRTM',FORM="UNFORMATTED",ACTION="READ",ERR=1000)
+  !ENDIF
+  READ(NULRAD,ERR=1001) KA,KB
+ENDIF
+IF( NPROC>1 )THEN
+  CALL MPL_BROADCAST (KA,MTAGRAD,1,CDSTRING='SRTM_KGB16:')
+  CALL MPL_BROADCAST (KB,MTAGRAD,1,CDSTRING='SRTM_KGB16:')
+ENDIF
+
+SFLUXREF = (/ &
+ & 1.92269_JPRB    , 1.72844_JPRB    , 1.64326_JPRB    , 1.58451_JPRB     &
+ & , 1.44031_JPRB    , 1.25108_JPRB    , 1.02724_JPRB    , 0.776759_JPRB    &
+ & , 0.534444_JPRB   , 5.87755E-02_JPRB, 4.86706E-02_JPRB, 3.87989E-02_JPRB &
+ & , 2.84532E-02_JPRB, 1.82431E-02_JPRB, 6.92320E-03_JPRB, 9.70770E-04_JPRB /)  
+
+!     Rayleigh extinction coefficient at v = 2925 cm-1.
+RAYL = 2.91E-10_JPRB
+
+STRRAT1 = 252.131_JPRB
+
+LAYREFFR = 18
+
+!     ------------------------------------------------------------------
+
+!     The array KA contains absorption coefs at the 16 chosen g-values 
+!     for a range of pressure levels> ~100mb, temperatures, and binary
+!     species parameters (see taumol.f for definition).  The first 
+!     index in the array, JS, runs from 1 to 9, and corresponds to 
+!     different values of the binary species parameter.  For instance, 
+!     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, 
+!     JS = 3 corresponds to the parameter value 2/8, etc.  The second index
+!     in the array, JT, which runs from 1 to 5, corresponds to different
+!     temperatures.  More specifically, JT = 3 means that the data are for
+!     the reference temperature TREF for this  pressure level, JT = 2 refers
+!     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5
+!     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers
+!     to the JPth reference pressure level (see taumol.f for these levels
+!     in mb).  The fourth index, IG, goes from 1 to 16, and indicates
+!     which g-interval the absorption coefficients are for.
+!     -----------------------------------------------------------------
+
+!     -----------------------------------------------------------------
+!     The array KB contains absorption coefs at the 16 chosen g-values 
+!     for a range of pressure levels < ~100mb and temperatures. The first 
+!     index in the array, JT, which runs from 1 to 5, corresponds to 
+!     different temperatures.  More specifically, JT = 3 means that the 
+!     data are for the reference temperature TREF for this pressure 
+!     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for
+!     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  
+!     The second index, JP, runs from 13 to 59 and refers to the JPth
+!     reference pressure level (see taumol.f for the value of these
+!     pressure levels in mb).  The third index, IG, goes from 1 to 16,
+!     and tells us which g-interval the absorption coefficients are for.
+!     -----------------------------------------------------------------
+
+FORREF(:, 1) = (/ 0.525585E-05_JPRB, 0.527618E-05_JPRB, 0.746929E-04_JPRB /)
+FORREF(:, 2) = (/ 0.794660E-05_JPRB, 0.136902E-04_JPRB, 0.849878E-04_JPRB /)
+FORREF(:, 3) = (/ 0.197099E-04_JPRB, 0.733094E-04_JPRB, 0.121687E-03_JPRB /)
+FORREF(:, 4) = (/ 0.148274E-03_JPRB, 0.169776E-03_JPRB, 0.164848E-03_JPRB /)
+FORREF(:, 5) = (/ 0.230296E-03_JPRB, 0.210384E-03_JPRB, 0.182028E-03_JPRB /)
+FORREF(:, 6) = (/ 0.280575E-03_JPRB, 0.259217E-03_JPRB, 0.196080E-03_JPRB /)
+FORREF(:, 7) = (/ 0.329034E-03_JPRB, 0.291575E-03_JPRB, 0.207044E-03_JPRB /)
+FORREF(:, 8) = (/ 0.349989E-03_JPRB, 0.323471E-03_JPRB, 0.225712E-03_JPRB /)
+FORREF(:, 9) = (/ 0.366097E-03_JPRB, 0.321519E-03_JPRB, 0.253150E-03_JPRB /)
+FORREF(:,10) = (/ 0.383589E-03_JPRB, 0.355314E-03_JPRB, 0.262555E-03_JPRB /)
+FORREF(:,11) = (/ 0.375933E-03_JPRB, 0.372443E-03_JPRB, 0.261313E-03_JPRB /)
+FORREF(:,12) = (/ 0.370652E-03_JPRB, 0.382366E-03_JPRB, 0.250070E-03_JPRB /)
+FORREF(:,13) = (/ 0.375092E-03_JPRB, 0.379542E-03_JPRB, 0.265794E-03_JPRB /)
+FORREF(:,14) = (/ 0.389705E-03_JPRB, 0.384274E-03_JPRB, 0.322135E-03_JPRB /)
+FORREF(:,15) = (/ 0.372084E-03_JPRB, 0.390422E-03_JPRB, 0.370035E-03_JPRB /)
+FORREF(:,16) = (/ 0.437802E-03_JPRB, 0.373406E-03_JPRB, 0.373222E-03_JPRB /)
+
+!     -----------------------------------------------------------------
+!     The array SELFREF contains the coefficient of the water vapor
+!     self-continuum (including the energy term).  The first index
+!     refers to temperature in 7.2 degree increments.  For instance,
+!     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8,
+!     etc.  The second index runs over the g-channel (1 to 16).
+
+SELFREF(:, 1) = (/ &
+ & 0.126758E-02_JPRB, 0.105253E-02_JPRB, 0.873963E-03_JPRB, 0.725690E-03_JPRB, 0.602573E-03_JPRB, &
+ & 0.500344E-03_JPRB, 0.415458E-03_JPRB, 0.344973E-03_JPRB, 0.286447E-03_JPRB, 0.237849E-03_JPRB /)  
+SELFREF(:, 2) = (/ &
+ & 0.144006E-02_JPRB, 0.118514E-02_JPRB, 0.975351E-03_JPRB, 0.802697E-03_JPRB, 0.660606E-03_JPRB, &
+ & 0.543667E-03_JPRB, 0.447429E-03_JPRB, 0.368226E-03_JPRB, 0.303044E-03_JPRB, 0.249400E-03_JPRB /)  
+SELFREF(:, 3) = (/ &
+ & 0.294018E-02_JPRB, 0.227428E-02_JPRB, 0.175920E-02_JPRB, 0.136077E-02_JPRB, 0.105258E-02_JPRB, &
+ & 0.814189E-03_JPRB, 0.629789E-03_JPRB, 0.487153E-03_JPRB, 0.376821E-03_JPRB, 0.291478E-03_JPRB /)  
+SELFREF(:, 4) = (/ &
+ & 0.395290E-02_JPRB, 0.348405E-02_JPRB, 0.307081E-02_JPRB, 0.270658E-02_JPRB, 0.238556E-02_JPRB, &
+ & 0.210261E-02_JPRB, 0.185322E-02_JPRB, 0.163341E-02_JPRB, 0.143967E-02_JPRB, 0.126891E-02_JPRB /)  
+SELFREF(:, 5) = (/ &
+ & 0.419122E-02_JPRB, 0.385638E-02_JPRB, 0.354829E-02_JPRB, 0.326481E-02_JPRB, 0.300398E-02_JPRB, &
+ & 0.276399E-02_JPRB, 0.254317E-02_JPRB, 0.234000E-02_JPRB, 0.215305E-02_JPRB, 0.198104E-02_JPRB /)  
+SELFREF(:, 6) = (/ &
+ & 0.495659E-02_JPRB, 0.456777E-02_JPRB, 0.420945E-02_JPRB, 0.387924E-02_JPRB, 0.357494E-02_JPRB, &
+ & 0.329450E-02_JPRB, 0.303606E-02_JPRB, 0.279790E-02_JPRB, 0.257842E-02_JPRB, 0.237615E-02_JPRB /)  
+SELFREF(:, 7) = (/ &
+ & 0.526981E-02_JPRB, 0.490687E-02_JPRB, 0.456893E-02_JPRB, 0.425426E-02_JPRB, 0.396126E-02_JPRB, &
+ & 0.368844E-02_JPRB, 0.343441E-02_JPRB, 0.319788E-02_JPRB, 0.297764E-02_JPRB, 0.277256E-02_JPRB /)  
+SELFREF(:, 8) = (/ &
+ & 0.575426E-02_JPRB, 0.531597E-02_JPRB, 0.491106E-02_JPRB, 0.453699E-02_JPRB, 0.419141E-02_JPRB, &
+ & 0.387216E-02_JPRB, 0.357722E-02_JPRB, 0.330475E-02_JPRB, 0.305303E-02_JPRB, 0.282048E-02_JPRB /)  
+SELFREF(:, 9) = (/ &
+ & 0.549881E-02_JPRB, 0.514328E-02_JPRB, 0.481074E-02_JPRB, 0.449970E-02_JPRB, 0.420877E-02_JPRB, &
+ & 0.393665E-02_JPRB, 0.368213E-02_JPRB, 0.344406E-02_JPRB, 0.322138E-02_JPRB, 0.301310E-02_JPRB /)  
+SELFREF(:,10) = (/ &
+ & 0.605357E-02_JPRB, 0.561246E-02_JPRB, 0.520349E-02_JPRB, 0.482432E-02_JPRB, 0.447278E-02_JPRB, &
+ & 0.414686E-02_JPRB, 0.384469E-02_JPRB, 0.356453E-02_JPRB, 0.330479E-02_JPRB, 0.306398E-02_JPRB /)  
+SELFREF(:,11) = (/ &
+ & 0.640504E-02_JPRB, 0.587858E-02_JPRB, 0.539540E-02_JPRB, 0.495194E-02_JPRB, 0.454492E-02_JPRB, &
+ & 0.417136E-02_JPRB, 0.382850E-02_JPRB, 0.351382E-02_JPRB, 0.322501E-02_JPRB, 0.295993E-02_JPRB /)  
+SELFREF(:,12) = (/ &
+ & 0.677803E-02_JPRB, 0.615625E-02_JPRB, 0.559152E-02_JPRB, 0.507859E-02_JPRB, 0.461271E-02_JPRB, &
+ & 0.418957E-02_JPRB, 0.380524E-02_JPRB, 0.345617E-02_JPRB, 0.313913E-02_JPRB, 0.285116E-02_JPRB /)  
+SELFREF(:,13) = (/ &
+ & 0.690347E-02_JPRB, 0.627003E-02_JPRB, 0.569472E-02_JPRB, 0.517219E-02_JPRB, 0.469761E-02_JPRB, &
+ & 0.426658E-02_JPRB, 0.387509E-02_JPRB, 0.351953E-02_JPRB, 0.319659E-02_JPRB, 0.290328E-02_JPRB /)  
+SELFREF(:,14) = (/ &
+ & 0.692680E-02_JPRB, 0.632795E-02_JPRB, 0.578087E-02_JPRB, 0.528109E-02_JPRB, 0.482452E-02_JPRB, &
+ & 0.440742E-02_JPRB, 0.402638E-02_JPRB, 0.367828E-02_JPRB, 0.336028E-02_JPRB, 0.306977E-02_JPRB /)  
+SELFREF(:,15) = (/ &
+ & 0.754894E-02_JPRB, 0.681481E-02_JPRB, 0.615207E-02_JPRB, 0.555378E-02_JPRB, 0.501367E-02_JPRB, &
+ & 0.452609E-02_JPRB, 0.408593E-02_JPRB, 0.368857E-02_JPRB, 0.332986E-02_JPRB, 0.300603E-02_JPRB /)  
+SELFREF(:,16) = (/ &
+ & 0.760689E-02_JPRB, 0.709755E-02_JPRB, 0.662232E-02_JPRB, 0.617891E-02_JPRB, 0.576519E-02_JPRB, &
+ & 0.537917E-02_JPRB, 0.501899E-02_JPRB, 0.468293E-02_JPRB, 0.436938E-02_JPRB, 0.407682E-02_JPRB /)  
+
+IF (LHOOK) CALL DR_HOOK('SRTM_KGB16',1,ZHOOK_HANDLE)
+RETURN
+
+1000 CONTINUE
+CALL ABOR1("SRTM_KGB16:ERROR OPENING FILE RADSRTM")
+1001 CONTINUE
+CALL ABOR1("SRTM_KGB16:ERROR READING FILE RADSRTM")
+
+END SUBROUTINE SRTM_KGB16
diff --git a/src/MNH/default_desfmn.f90 b/src/MNH/default_desfmn.f90
index f92ae967f58c39052e4fa3b2e29f3fe9e61684e2..79f2341690d43bdf19eb2ababad17b51e9e2f363 100644
--- a/src/MNH/default_desfmn.f90
+++ b/src/MNH/default_desfmn.f90
@@ -221,6 +221,7 @@ END MODULE MODI_DEFAULT_DESFM_n
 !!                   10/2016  (F Brosse) add prod/loss terms computation for chemistry
 !!                   07/2017  (V. Masson) adds time step for output files writing.
 !!                   09/2017 Q.Rodier add LTEND_UV_FRC
+!!                   02/2018 Q.Libois ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -244,6 +245,9 @@ USE MODD_TURB_n
 USE MODD_BUDGET
 USE MODD_LES
 USE MODD_PARAM_RAD_n
+#ifdef MNH_ECRAD
+USE MODD_PARAM_ECRAD_n
+#endif
 USE MODD_BLANK
 USE MODD_FRC
 USE MODD_PARAM_ICE
@@ -925,6 +929,31 @@ XFUDG = 1.
 LAERO_FT=.FALSE.
 LFIX_DAT=.FALSE.
 !
+#ifdef MNH_ECRAD
+!*      13bis.   SET DEFAULT VALUES FOR MODD_PARAM_ECRAD_n :
+!             ---------------------------------------
+!
+NSWSOLVER = 0           ! 0: 'McICA 1: 'SPARTACUS' 2: 'SPARTACUS' + 3D effect                            
+NLWSOLVER = 0           ! 0: 'McICA 1: 'SPARTACUS' 2: 'SPARTACUS' + 3D effect 
+! LEFF3D         = .TRUE.
+! LSIDEM         = .TRUE.
+NREG           = 3            ! Number of cloudy regions (3=TripleClouds)
+! LLWCSCA        = .TRUE.       ! LW cloud scattering
+! LLWASCA        = .TRUE.       ! LW aerosols scattering
+NLWSCATTERING = 2
+NAERMACC = 0
+! CGAS           = 'RRTMG-IFS'  ! Gas optics model
+NOVLP          = 1     ! overlap assumption ; 0= 'Max-Ran' ; 1= 'Exp-Ran'; 2 = 'Exp-Exp'
+NLIQOPT        = 3            ! 1: 'Monochromatic', 2: 'HuStamnes', 3: 'SOCRATES', 4: 'Slingo' 
+NICEOPT        = 3            ! 1: 'Monochromatic', 2: 'Fu-PSRAD', 3: 'Fu-IFS', 4: 'Baran', 5: 'Baran2016', 6: 'Baran2017' 
+! LSW_ML_E       = .FALSE.
+! LLW_ML_E       = .FALSE.
+! LPSRAD         = .FALSE.
+! 
+NRADLP = 1                    ! 0: ERA-15, 1: Zhang and Rossow, 2: Martin (1994) et Woods (2000)
+NRADIP = 1                    ! 0: 40 mum, 1: Liou and Ou (1994), 2: Liou and Ou (1994) improved, 3: Sun and Rikus (1999)
+XCLOUD_FRAC_STD = 1.0_JPRB ! change to 0.75 for more realistic distribution
+#endif
 !-------------------------------------------------------------------------------
 !
 !*      14.   SET DEFAULT VALUES FOR MODD_BLANK :
diff --git a/src/MNH/ecmwf_radiation_vers2.f90 b/src/MNH/ecmwf_radiation_vers2.f90
index e4e1c409db7828875f296b9cc3ff5d7b14c38686..c94a2d23a73113888ab1e360e3438152380a20c1 100644
--- a/src/MNH/ecmwf_radiation_vers2.f90
+++ b/src/MNH/ecmwf_radiation_vers2.f90
@@ -70,6 +70,7 @@ SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, &
 !         M.Mazoyer 2016 :  limit of 100 microns for effective radius 
 !         B.VIE 2016 : LIMA
 !         J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
+!!        Q.Libois  02/2018 : ECRAD
 !-----------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -77,10 +78,10 @@ SUBROUTINE ECMWF_RADIATION_VERS2 ( KLON,KLEV,KRAD_DIAG, KAER, &
 !ECMWF radiation scheme specific modules 
 !
 USE PARKIND1 , ONLY : JPRB
-USE YOMCST   , ONLY : RG ,RD ,RTT ,RPI
-USE YOERAD   , ONLY : NMODE, NSW ,LRRTM ,LINHOM ,LRADIP, LRADLP 
+USE OYOMCST   , ONLY : RG ,RD ,RTT ,RPI
+USE OYOERAD   , ONLY : NMODE, NSW ,LRRTM ,LINHOM ,LRADIP, LRADLP 
 USE YOELW    , ONLY : NSIL     ,NTRA     ,NUA      ,TSTAND   ,XP
-USE YOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
+USE OYOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
             &RYFWCE   ,RYFWCF   ,REBCUA   ,REBCUB   ,REBCUC   ,&
             &REBCUD   ,REBCUE   ,REBCUF   ,REBCUI   ,REBCUJ   ,&
             &REBCUG   ,REBCUH   ,RHSAVI   ,RFULIO   ,RFLAA0   ,&
@@ -92,9 +93,9 @@ USE YOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
             &RASWCB   ,RASWCC   ,RASWCD   ,RASWCE   ,RASWCF   ,&
             &RLINLI
 USE YOERDU   , ONLY : RCDAY,  NUAER    ,NTRAER   ,REPLOG   ,REPSC    ,DIFF
-USE YOERDI   , ONLY : REPCLC
+USE OYOERDI   , ONLY : REPCLC
 USE YOETHF   , ONLY : RTICE
-USE YOERRTWN , ONLY : NG ,NSPA ,NSPB ,WAVENUM1  ,&
+USE OYOERRTWN , ONLY : NG ,NSPA ,NSPB ,WAVENUM1  ,&
                       WAVENUM2, DELWAVE, TOTPLNK, TOTPLK16
 !
 !MESO-NH modules
@@ -114,7 +115,7 @@ USE MODD_PARAM_C2R2,  ONLY : UALPHAC=>XALPHAC,UNUC=>XNUC, &
 USE MODD_PARAM_RAD_n,  ONLY : CAOP                               
 !
 USE MODI_LW
-USE MODI_RRTM_RRTM_140GP
+!USE MODI_RRTM_RRTM_140GP
 USE MODI_SW
 !
 ! LIMA
@@ -132,7 +133,7 @@ IMPLICIT NONE
 !*       0.1   DECLARATIONS OF DUMMY ARGUMENTS :
 !  
 INTEGER, INTENT(IN) :: KAER !number of aerosol class     
-REAL, DIMENSION (:,:), INTENT (IN) ::PDZ !thickness of the mesh (m)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN) ::PDZ !thickness of the mesh (m)
 INTEGER, INTENT(IN) :: KLEV ! number of vertical level for radiation calulation 
 INTEGER, INTENT(IN) :: KLON ! number of columns            " 
 INTEGER, INTENT(IN) :: KRAD_DIAG ! index for the number of diagnostic fields 
@@ -147,14 +148,14 @@ REAL, INTENT(IN)               :: PFUDG  !subgrid cloud inhomogeneity factor
 !
 REAL(KIND=JPRB), INTENT(INOUT)       :: PRII0 ! corrected solar constant
 REAL, INTENT(IN)                     :: PCCO2 ! CO2 content (Pa/Pa)
-REAL, DIMENSION (:,:,:), INTENT (IN) :: PAER  ! aerosol optical thickness
-REAL, DIMENSION (:,:), INTENT (IN)   :: PALBD ! surface diffuse spectral albedo
-REAL, DIMENSION (:,:), INTENT (IN)   :: PALBP ! surface direct spectral albedo
-REAL, DIMENSION (:), INTENT (IN)     :: PEMIS ! surface emissivity
-REAL, DIMENSION (:), INTENT (IN)     :: PEMIW ! surface emissivity in LW window
-REAL, DIMENSION (:), INTENT (IN)     :: PLSM  ! land sea mask
-REAL, DIMENSION (:), INTENT (IN)     :: PMU0  ! cosine of solar angle 
-REAL, DIMENSION (:,:), INTENT (IN)   :: POZON ! ozone content (Pa/Pa)
+REAL(KIND=JPRB), DIMENSION (:,:,:), INTENT (IN) :: PAER  ! aerosol optical thickness
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PALBD ! surface diffuse spectral albedo
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PALBP ! surface direct spectral albedo
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PEMIS ! surface emissivity
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PEMIW ! surface emissivity in LW window
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PLSM  ! land sea mask
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PMU0  ! cosine of solar angle 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: POZON ! ozone content (Pa/Pa)
 REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PTS   ! surfaec temperature
 REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PT    ! mean layer  temperature (mass point) 
 REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PAP   ! mean layer  pressure (mass point)
@@ -163,16 +164,16 @@ REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PAPH  ! half-level pressure
 REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PDP   ! layer pressure thickness
 REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQ    ! mean layer specific humidity  (Pa/pa) 
 REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQS   ! mean layer saturation spec. humid.
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQIWC ! mean-layer ice specific water content (kg/kg)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PIWC ! mean-layer ice water content (kg/m3)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQLWC ! mean-layer liquid specific water content(kg/Kg)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PLWC ! mean-layer liquid water content(kg/m3)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PQRWC ! mean-layer rain specific water content(kg/kg)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PRWC ! mean-layer rain water content(kg/m3)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCLFR  ! mean-layer cloud fraction
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCCT_C2R2 ! cloud water concentration (C2R2)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCRT_C2R2 ! rain water concentration (C2R2)
-REAL, DIMENSION (:,:), INTENT (IN)   :: PCIT_C1R3 ! ice crystal concentration (C1R3)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQIWC ! mean-layer ice specific water content (kg/kg)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PIWC ! mean-layer ice water content (kg/m3)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQLWC ! mean-layer liquid specific water content(kg/Kg)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PLWC ! mean-layer liquid water content(kg/m3)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQRWC ! mean-layer rain specific water content(kg/kg)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PRWC ! mean-layer rain water content(kg/m3)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCLFR  ! mean-layer cloud fraction
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCCT_C2R2 ! cloud water concentration (C2R2)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCRT_C2R2 ! rain water concentration (C2R2)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCIT_C1R3 ! ice crystal concentration (C1R3)
 REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PPIZA_DST   !Single scattering albedo of dust (wvl dependent)
 REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PCGA_DST    !Assymetry factor for dust (wvl dependent)
 REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PTAUREL_DST !Optical depth of dust relative to the one at 550nm
@@ -411,7 +412,7 @@ END WHERE
 !
 !Care : OZONE field = (concentration) * DP, in initial ECMWF driver routines
 !
-ZOZON(:,:) = POZON (:,:) * PDP (:,:)
+ZOZON(:,:) = RG / 46.6968 * POZON (:,:) * PDP (:,:) ! to be consistent with the actual input of RADLSW
 !
 ! Aerosol field
 !
@@ -498,6 +499,7 @@ DO JK = 1 , KLEV
 ! --- Liquid Water Content (g.m-3) and Liquid Water Path (g.m-2)
 !
     ZLWGKG=MAX(PLWC(JL,IKL)*1000.,0.)
+    ZRWGKG=MAX(PRWC(JL,IKL)*1000.,0.)
     ZIWGKG=MAX(PIWC(JL,IKL)*1000.,0.)
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !Parametrisation des propriete optiques de la pluie non implementee
@@ -506,15 +508,17 @@ DO JK = 1 , KLEV
 !      ZRWGKG=MAX(PRWC(JL,IKL)*1000.,0.)
 !      IF (ZRWGKG.ne.0.0) ZCLFR(JL,IKL)=1.0
 !    ELSE
-      ZRWGKG=0.0   
+!      ZRWGKG=0.0   
 !    ENDIF
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
     IF (ZCLFR(JL,IKL) > 1E-2 ) THEN
       ZLWGKG=ZLWGKG/ZCLFR(JL,IKL)
+      ZRWGKG=ZRWGKG/ZCLFR(JL,IKL)      
       ZIWGKG=ZIWGKG/ZCLFR(JL,IKL)
     ELSE
       ZLWGKG=0.
+      ZRWGKG=0.
       ZIWGKG=0.
     ENDIF
 
@@ -707,7 +711,7 @@ DO JK = 1 , KLEV
 !-- SW: Slingo, 1989
 !
                IF (ZRADLP(JL)>1.0) then
-                ZTOL = ZSWFUDG * ZFLWP(JL)*(RASWCA(JSW)+RASWCB(JSW)/ZRADLP(JL))
+                ZTOL = ZSWFUDG * (ZFLWP(JL)+ZFRWP(JL))*(RASWCA(JSW)+RASWCB(JSW)/ZRADLP(JL))
                 ZGL  = RASWCE(JSW)+RASWCF(JSW)*ZRADLP(JL)
                 ZOL  = 1. - RASWCC(JSW)-RASWCD(JSW)*ZRADLP(JL)
                ENDIF
@@ -1127,7 +1131,8 @@ ELSE
 !
   DO JK = 1, KLEV
     DO JL = IKIDIA,IKFDIA
-      ZOZN(JL,JK) = ZOZON(JL,JK)/PDP(JL,JK)
+!       ZOZN(JL,JK) = ZOZON(JL,JK)/PDP(JL,JK) 
+      ZOZN(JL,JK) = POZON(JL,JK)/PDP(JL,JK) ! Quentin because climatology in volume mixing ratio, not mmr
     ENDDO
   ENDDO
 !
diff --git a/src/MNH/ecrad_interface.f90 b/src/MNH/ecrad_interface.f90
new file mode 100644
index 0000000000000000000000000000000000000000..b056dbd68dd7ddc7d3e1206e179642da26847efd
--- /dev/null
+++ b/src/MNH/ecrad_interface.f90
@@ -0,0 +1,653 @@
+!MNH_LIC Copyright 1994-2014 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.
+!-----------------------------------------------------------------
+!--------------- special set of characters for RCS information
+!-----------------------------------------------------------------
+! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/radiations.f90,v $ $Revision: 1.3.2.3.2.2.2.4 $
+! masdev4_7 BUG1 2007/06/15 17:47:18
+!-----------------------------------------------------------------
+!    ########################
+     MODULE MODI_ECRAD_INTERFACE  
+!    ########################
+!
+CONTAINS
+!
+!##############################################################
+!OPTION! -Ni
+SUBROUTINE ECRAD_INTERFACE ( KLON,KLEV,KRAD_DIAG, KAER, &
+     PDZ,HEFRADL, HEFRADI, HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,  &
+     PRII0, PAER , PALBD , PALBP, PAPH , PAP,                 &
+     PCCO2, PCLFR , PDP  , PEMIS, PEMIW , PLSM , PMU0, POZON, &
+     PQ   , PQIWC, PIWC, PQLWC, PLWC,PQS  , PQRWC, PRWC,              &
+     PTH  , PT    , PTS, PCCT_C2R2, PCRT_C2R2, PCIT_C1R3,     &
+     PFLT  , PFLS , PFCT , PFCS  ,                            &  
+     PDTLW, PDTSW ,PFLUX_TOP_GND_IRVISNIR,                    & 
+     PSFSWDIR, PSFSWDIF,                                      &
+     PFSDWN, PFSUP, PFLUX_LW ,                                &
+     PDTLW_CS, PDTSW_CS ,PFLUX_TOP_GND_IRVISNIR_CS,           &
+     PFCDWN, PFCUP, PFLUX_CLW,                                & 
+     PPLAN_ALB_VIS, PPLAN_ALB_NIR, PPLAN_TRA_VIS, PPLAN_TRA_NIR,&
+     PPLAN_ABS_VIS, PPLAN_ABS_NIR, PEFCL_LWD, PEFCL_LWU,      &
+     PFLWP,PFIWP,PRADLP,PRADIP, PEFCL_RRTM, PCLSW_TOTAL,      & 
+     PTAU_TOTAL, POMEGA_TOTAL, PCG_TOTAL,                     &
+     ODUST,PPIZA_DST,PCGA_DST,PTAUREL_DST,PLAT,PLON           )
+!##############################################################
+!  
+!**** *ECRAD* - INTERFACE TO ECRAD RADIATION SCHEMES USING THE SAME INPUTS AS ECMWF_RADIATION_VERS2
+!
+!     PURPOSE.
+!     --------
+!     Interface routine to call ECRAD SW and LW radiation schemes in the MesoNH 
+!     framework. It is an alternative to ECMWF_RADIATION_VERS2.
+!
+!     METHOD.
+!     -------
+!     This routine calls the RADIATION_SCHEME routine from ECRAD package.
+!     It converts the standard inputs common with ECMWF_VERSION_2 into those
+!     required by RADIATION_SCHEME and then calls the latter routine.
+
+!     It takes as inputs fields from routine RADIATIONS where index 0 is TOA
+!     RADIATION_SCHEME takes such arrays and returns similar order. The order is reversed at the end of
+!     the routine to return to RADIATIONS arrays from surface to top 
+!              
+!
+!     EXTERNALS.
+!     ----------
+!     Note that external specific ECMWF module (named "yo==="). They don't follow the MNH MODD norm
+!     and are initialised in the ini_radiation step. 
+!
+!
+!     REFERENCE.
+!     ----------
+!     ECMWF and MESONH radiation part documentation     
+!
+!     AUTHORS.
+!     --------
+!        Q. LIBOIS (June 2017)  
+
+!     MODIFICATIONS.
+!     --------------        
+
+!-----------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!              ------------
+!ECMWF radiation scheme specific modules 
+!
+! USE YOMCST   , ONLY : RG ,RD ,RTT ,RPI
+! USE YOERAD   , ONLY : NMODE, NSW ,LRRTM ,LINHOM ,LRADIP, LRADLP 
+! USE YOELW    , ONLY : NSIL     ,NTRA     ,NUA      ,TSTAND   ,XP
+! USE YOESW    , ONLY : RYFWCA   ,RYFWCB   ,RYFWCC   ,RYFWCD   ,&
+!             &RYFWCE   ,RYFWCF   ,REBCUA   ,REBCUB   ,REBCUC   ,&
+!             &REBCUD   ,REBCUE   ,REBCUF   ,REBCUI   ,REBCUJ   ,&
+!             &REBCUG   ,REBCUH   ,RHSAVI   ,RFULIO   ,RFLAA0   ,&
+!             &RFLAA1   ,RFLBB0   ,RFLBB1   ,RFLBB2   ,RFLBB3   ,&
+!             &RFLCC0   ,RFLCC1   ,RFLCC2   ,RFLCC3   ,RFLDD0   ,&
+!             &RFLDD1   ,RFLDD2   ,RFLDD3   ,RFUAA0   ,RFUAA1   ,&
+!             &RFUBB0   ,RFUBB1   ,RFUBB2   ,RFUBB3   ,RFUCC0   ,&
+!             &RFUCC1   ,RFUCC2   ,RFUCC3   ,RFUETA   ,RASWCA   ,&
+!             &RASWCB   ,RASWCC   ,RASWCD   ,RASWCE   ,RASWCF   ,&
+!             &RLINLI
+! USE YOERDU   , ONLY : RCDAY,  NUAER    ,NTRAER   ,REPLOG   ,REPSC    ,DIFF
+! USE YOERDI   , ONLY : REPCLC
+! USE YOETHF   , ONLY : RTICE
+! USE YOERRTWN , ONLY : NG ,NSPA ,NSPB ,WAVENUM1  ,&
+!                       WAVENUM2, DELWAVE, TOTPLNK, TOTPLK16
+!
+!MESO-NH modules
+! USE MODD_PARAMETERS
+! USE MODD_RAIN_C2R2_KHKO_PARAM, ONLY : UCREC=>XCREC, UCRER=>XCRER, UFREFFR=>XFREFFR
+! USE MODD_RAIN_C2R2_DESCR, ONLY : UAC=>XAC, UAR=>XAR,       &
+!                                  ULBEXC=>XLBEXC, ULBEXR=>XLBEXR, &
+!                                  URTMIN=>XRTMIN, UCTMIN=>XCTMIN
+! USE MODD_ICE_C1R3_PARAM,  ONLY : YFREFFI=>XFREFFI
+! USE MODD_ICE_C1R3_DESCR,  ONLY : YLBEXI=>XLBEXI,                      &
+!                                  YRTMIN=>XRTMIN, YCTMIN=>XCTMIN
+! USE MODD_CST
+! USE MODD_CRAD
+! 
+! USE MODD_PARAM_C2R2,  ONLY : UALPHAC=>XALPHAC,UNUC=>XNUC, &
+!                              UALPHAR=>XALPHAR,UNUR=>XNUR !
+! USE MODD_PARAM_RAD_n,  ONLY : CAOP                               
+! !
+! USE MODI_LW
+! USE MODI_RRTM_RRTM_140GP
+! USE MODI_SW
+! !
+! ! LIMA
+! USE MODD_PARAM_n, ONLY : CCLOUD
+! USE MODD_PARAM_LIMA, ONLY : ZRTMIN=>XRTMIN, ZCTMIN=>XCTMIN, &
+!                             ZALPHAC=>XALPHAC, ZNUC=>XNUC,   &
+!                             ZALPHAR=>XALPHAR, ZNUR=>XNUR
+! USE MODD_PARAM_LIMA_WARM, ONLY : ZCREC=>XCREC, ZCRER=>XCRER, ZFREFFR=>XFREFFR, &
+!                                  ZAC=>XAC, ZAR=>XAR, ZLBEXC=>XLBEXC, ZLBEXR=>XLBEXR
+! USE MODD_PARAM_LIMA_COLD, ONLY : ZFREFFI=>XFREFFI, ZLBEXI=>XLBEXI
+#ifdef MNH_ECRAD
+USE MODI_RADIATION_SCHEME
+USE YOERDU   , ONLY : RCDAY, REPSC
+USE YOMCST, ONLY: RG
+USE MODD_PARAM_ECRAD_n , ONLY : XCCH4, XCN2O, XCNO2, XCCFC11, XCCFC12, XCCFC22, XCCCL4, & 
+                               & XCCNSEA, XCCNLND, LRRTM
+#endif                       
+USE MODD_RADIATIONS_n , ONLY : NSWB_OLD,NSWB_MNH
+
+USE MODD_GRID_n , ONLY : XLAT, XLON
+USE MODD_GRID , ONLY : XLAT0, XLON0
+USE MODD_CONF,         ONLY : LCARTESIAN
+USE MODD_PARAMETERS , ONLY : XUNDEF
+USE MODE_ll , ONLY : GET_INDICE_ll
+USE MODD_CST , ONLY : XCPD, XCL, XCI, XCPV, XCPD,XPI
+
+USE PARKIND1 , ONLY : JPIM, JPRB
+
+IMPLICIT NONE
+!
+
+!
+!*       0.1   DECLARATIONS OF DUMMY ARGUMENTS :
+!  
+INTEGER, INTENT(IN) :: KAER !number of aerosol class     
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN) ::PDZ !thickness of the mesh (m)
+INTEGER, INTENT(IN) :: KLEV ! number of vertical level for radiation calulation 
+INTEGER, INTENT(IN) :: KLON ! number of columns            " 
+INTEGER, INTENT(IN) :: KRAD_DIAG ! index for the number of diagnostic fields 
+!                                        choice in
+CHARACTER (LEN=*), INTENT (IN) :: HEFRADL !cloud water effective radius calculation  
+CHARACTER (LEN=*), INTENT (IN) :: HEFRADI !ice water effective radius calculation
+CHARACTER (LEN=*), INTENT (IN) :: HOPWSW !cloud water SW optical properties  
+CHARACTER (LEN=*), INTENT (IN) :: HOPISW !ice water SW optical properties 
+CHARACTER (LEN=*), INTENT (IN) :: HOPWLW !cloud water LW optical properties
+CHARACTER (LEN=*), INTENT (IN) :: HOPILW !ice water  LW optical properties
+REAL, INTENT(IN)               :: PFUDG  !subgrid cloud inhomogeneity factor
+!
+REAL(KIND=JPRB), INTENT(INOUT)                     :: PRII0 ! corrected solar constant
+REAL, INTENT(IN)                     :: PCCO2 ! CO2 content (Pa/Pa)
+REAL(KIND=JPRB), DIMENSION (:,:,:), INTENT (IN) :: PAER  ! aerosol optical thickness
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PALBD ! surface diffuse spectral albedo
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PALBP ! surface direct spectral albedo
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PEMIS ! surface emissivity
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PEMIW ! surface emissivity in LW window
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PLSM  ! land sea mask
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PMU0  ! cosine of solar angle 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: POZON ! ozone content (Pa/Pa)
+REAL(KIND=JPRB), DIMENSION (:), INTENT (IN)     :: PTS   ! surfaec temperature
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PT    ! mean layer  temperature (mass point) 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PAP   ! mean layer  pressure (mass point)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PTH   ! half-level temperature
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PAPH  ! half-level pressure 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PDP   ! layer pressure thickness
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQ    ! mean layer specific humidity  (Pa/pa) 
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQS   ! mean layer saturation spec. humid.
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQIWC ! mean-layer ice specific water content (kg/kg)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PIWC ! mean-layer ice water content (kg/m3)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQLWC ! mean-layer liquid specific water content(kg/Kg)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PLWC ! mean-layer liquid water content(kg/m3)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PQRWC ! mean-layer rain specific water content(kg/kg)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PRWC ! mean-layer rain water content(kg/m3)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCLFR  ! mean-layer cloud fraction
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCCT_C2R2 ! cloud water concentration (C2R2)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCRT_C2R2 ! rain water concentration (C2R2)
+REAL(KIND=JPRB), DIMENSION (:,:), INTENT (IN)   :: PCIT_C1R3 ! ice crystal concentration (C1R3)
+REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PPIZA_DST   !Single scattering albedo of dust (wvl dependent)
+REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PCGA_DST    !Assymetry factor for dust (wvl dependent)
+REAL(KIND=JPRB), DIMENSION(:,:,:),INTENT(IN)    :: PTAUREL_DST !Optical depth of dust relative to the one at 550nm
+LOGICAL, INTENT (IN)                 :: ODUST  ! flag for dust
+!
+REAL, DIMENSION (:), INTENT (IN)     :: PLAT ! latitude
+REAL, DIMENSION (:), INTENT (IN)     :: PLON  ! longitude
+!
+! OUTPUTS 
+!
+REAL, DIMENSION (:,:), INTENT (OUT) :: PDTLW   ! LW temperature tendency
+REAL, DIMENSION (:,:), INTENT (OUT) :: PDTSW   ! SW temperature tendency
+REAL, DIMENSION (:,:), INTENT (OUT) :: PFLUX_TOP_GND_IRVISNIR ! Top and Ground rad. FLUX.
+REAL, DIMENSION (:,:), INTENT (OUT) :: PSFSWDIR ! surface SW direct flux
+REAL, DIMENSION (:,:), INTENT (OUT) :: PSFSWDIF ! surface SW diffuse flux
+! 
+!KRAD_DIAG >=1 --> optional: flux profiles
+!
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFLT ! Total LW net flux
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFLS ! Total SW net flux
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFSDWN! Downward SW flux
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFSUP ! Upward SW flux
+REAL, DIMENSION (:,:,:), INTENT (OUT):: PFLUX_LW ! LW flux (upward and downward)
+!
+!KRAD_DIAG >=2 --> optional: clear-sky outputs
+!
+REAL, DIMENSION (:,:), INTENT (OUT) :: PDTLW_CS   ! LW clear sky temperature tendancy
+REAL, DIMENSION (:,:), INTENT (OUT) :: PDTSW_CS   ! SW  clear sky temperature tendancy
+REAL, DIMENSION (:,:), INTENT (OUT) :: PFLUX_TOP_GND_IRVISNIR_CS !  Top and
+                                                                 !  Ground radiative Clear-sky FLUXes
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCT ! Clear-sky LW net flux 
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCS ! Clear-sky SW net flux
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCDWN  ! Downward SW Clear sky flux 
+REAL, DIMENSION (:,:), INTENT (OUT)  :: PFCUP   ! Upward SW Clear sky flux 
+REAL, DIMENSION (:,:,:), INTENT (OUT) :: PFLUX_CLW !Clear sky  LW flux (upward and downward)
+!
+!KRAD_DIAG >=3 --> optional: other macroscpic radiative parameteres
+!
+REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ALB_VIS !PLANetary ALBedo in VISible 
+REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ALB_NIR !     "          Near-InfraRed
+REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_TRA_VIS !PLANetary TRANsmission in VISible
+REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_TRA_NIR !     "          Near-InfraRed
+REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ABS_VIS !PLANetary ABSorption in VISible
+REAL, DIMENSION (:), INTENT (OUT) :: PPLAN_ABS_NIR !     "          Near-InfraRed 
+
+!
+!KRAD_DIAG >=4 --> optional: more cloud effect radiative parameters 
+!
+REAL, DIMENSION (:,:), INTENT (OUT) :: PFLWP       ! Liquid water path
+REAL, DIMENSION (:,:), INTENT (OUT) :: PFIWP       ! Ice water path
+REAL, DIMENSION (:,:), INTENT (OUT) :: PRADLP      ! Cloud water effective radius  
+REAL, DIMENSION (:,:), INTENT (OUT) :: PRADIP      ! Cloud ice effective radius
+REAL, DIMENSION (:,:), INTENT (OUT) :: PEFCL_LWD   ! effective downward LW nebulosity 
+REAL, DIMENSION (:,:), INTENT (OUT) :: PEFCL_LWU   ! effective upward LW nebulosity 
+                                                   ! Note: not meaningfull when using RRTM 
+REAL, DIMENSION (:,:), INTENT (OUT) :: PEFCL_RRTM ! Effective LW nebulosity ( RRTM case)
+REAL, DIMENSION (:,:), INTENT (OUT) :: PCLSW_TOTAL ! Effective SW cloud fraction(mixed phase)
+REAL, DIMENSION (:,:,:), INTENT (OUT) :: PTAU_TOTAL !Effective cloud optical thickness
+REAL, DIMENSION (:,:,:), INTENT (OUT) :: POMEGA_TOTAL! "   single scattering albedo
+REAL, DIMENSION (:,:,:), INTENT (OUT) :: PCG_TOTAL   ! "   asymetry factor 
+REAL :: ZLOGREFF  !LOG10of the effective radius 
+!  
+!
+!*       0.2  DECLARATION OF LOCAL VARIABLES
+!              -------------------------
+!    
+! INTEGER       :: IKIDIA, IKFDIA   ! vector indexes in ecmwf code 
+! INTEGER       :: IKL, JK, JKL, JKLP1, JL, JNU, JRTM, JSW !loop indices
+! INTEGER       :: INDLAY
+! 
+! REAL          :: ZASYMX, ZDIFFD, ZGI, ZGL, ZGR, ZIWGKG, ZLWGKG,&
+!      ZMULTI, ZMSAID, ZMSAIU, ZMSALD, ZMSALU,ZMSARD, ZMSARU, &
+!      ZLWFUDG, ZSWFUDG, ZMULTL, ZMULTR, ZOI, ZOL, ZOMGMX, ZOR, &
+!      ZRMUZ, ZRWGKG, ZTAUD, ZTAUMX, ZTEMPC, &
+!      ZTOI, ZTOL, ZTOR, ZZFIWP, ZZFLWP, ZZFRWP, ZDPOG, ZPODT
+     
+! REAL          :: ZALND, ZASEA, ZD, ZDEN, ZNTOT, ZNUM, ZRATIO, Z1RADI,&
+!      ZBETAI, ZOMGI, ZOMGP, ZFDEL,  ZTCELS, ZFSR,  ZAIWC, ZBIWC,  &
+!      ZTBLAY, ZADDPLK,  ZPLANCK, Z1RADL, Z1RADR
+! 
+! REAL, DIMENSION(KLON) ::  ZTCLEAR, ZDT0, ZEMIS, ZEMIW, &
+!      ZFIWP , ZFLWP, ZFRWP, ZIWC,      &
+!      ZLWC, ZMU0, ZPSOL, ZVIEW,        &
+!      ZBICFU,  ZKICFU1, ZKICFU2,       &
+!      ZFSUPN, ZFSUPV,ZFCUPN, ZFCUPV,   &
+!      ZFSDNN, ZFSDNV, ZFCDNN, ZFCDNV,  &  
+!      ZALFICE, ZGAMICE, ZBICE,         &
+!      ZRADIP, ZDESR,ZRES,              &
+!      ZRADLP,ZRADRP,ZRADLS,ZRADRS,     &
+!      ZTICE , ZEMIT, ZSUDU, ZRHO, ZMR, &
+!      ZUVDF, ZPARF
+! !cc           , ZRADRD
+! !
+! REAL, DIMENSION(KLON,NSW)    :: ZALBD , ZALBP , ZDIRFS, ZDIFFS
+! REAL, DIMENSION(KLON,KLEV)   :: ZCLFR,  ZCLDLD  , ZCLDLU, ZCLDSW,        &  
+!      ZOZON, ZOZ   , ZOZN,    ZTAVE ,  ZDPGCP, &
+!      ZCOOLR  , ZCOOLC, ZHEATR  , ZHEATC,      & 
+!      ZDFLWT  , ZDFLWC, ZDFSWT  , ZDFSWC
+! !
+! REAL, DIMENSION(KLON,KLEV+1) :: ZPMB  , ZTL, & 
+!      ZFCDWN, ZFCUP, ZFSDWN, ZFSUP, &
+!      ZFLT, ZFCT,ZFCS, ZFLS
+! !
+! REAL, DIMENSION(KLON,NSW,KLEV) :: ZCG ,ZOMEGA, ZTAU
+! !
+! REAL, DIMENSION(KLON,2,KLEV+1) :: ZFLUX_LW, ZFLUX_CLW      
+! !
+! REAL, DIMENSION(KLON,KLEV,16)  :: ZTAUCLD
+! !
+! REAL, DIMENSION(KLON,KAER,KLEV) :: ZAER_SW,ZAER_LW ! Optical aerosol properties
+! LOGICAL :: GPROP_OP             !drapeau sur les condition a remplir pour que le
+!                                 !calcul des propriétés optiques soit effectué
+! !
+! REAL, ALLOCATABLE, DIMENSION(:) :: XRTMIN, XCTMIN
+! REAL :: XALPHAC,XNUC,XALPHAR,XNUR,XCREC,XCRER,XFREFFR,XAC,XAR,XLBEXC,XLBEXR,XFREFFI,XLBEXI
+! !--------------------------------------------------------------
+
+INTEGER       :: IKIDIA, IKFDIA   ! vector indexes in ecmwf code 
+INTEGER :: IIB, IJB, IIE, IJE, IIJ, II, JJ, IJ, JI, JL, JK, JKL, IKL,JKLP1 !loop indices
+
+! Old parameters still needed
+REAL :: ZIWGKG, ZLWGKG, ZRWGKG 
+REAL, DIMENSION(KLON) :: ZFLWP, ZFIWP, ZFRWP
+REAL, DIMENSION(KLON,KLEV) :: ZDPGCP, ZDFSWC, ZDFSWT, ZDFLWC, ZDFLWT, ZCLFR
+REAL, DIMENSION(KLON,KLEV+1) :: ZFLT, ZFCT, ZFCS, ZFLS
+
+! 
+!New local parameters specific to ecrad - Q.L.
+REAL(KIND=JPRB), DIMENSION(KLON) :: ZGELAM , ZGEMU
+REAL(KIND=JPRB), DIMENSION(KLON) :: ZCCNLND , ZCCNSEA
+REAL(KIND=JPRB), DIMENSION(KLON,KLEV) :: ZCCO2, ZCCH4, ZCN2O, ZCNO2, ZCCFC11, ZCCFC12, ZCCFC22, ZCCCL4
+INTEGER :: IIDIA , IFDIA
+REAL(KIND=JPRB), DIMENSION(KLON,6,KLEV) :: ZAEROSOL_OLD ! initialized to 0 for the time being
+INTEGER , PARAMETER :: IAER = 12 ! number of aerosol types in MACC climatology, not used if XAERMACC = 0
+REAL(KIND=JPRB), DIMENSION(KLON,KLEV,IAER) :: ZAEROSOL
+REAL(KIND=JPRB), DIMENSION(KLON,KLEV) :: ZOZON
+REAL(KIND=JPRB), DIMENSION(KLON,KLEV) :: ZQSWC
+!---------------------
+
+REAL, DIMENSION(KLON,KLEV) :: ZAP,ZT,ZOZ
+REAL, DIMENSION(KLON,KLEV+1) :: ZAPH,ZTH
+
+
+        
+! Outputs of RADIATION_SCHEME
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_SW 
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_LW 
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_SW_CLEAR 
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_LW_CLEAR 
+REAL(KIND=JPRB),DIMENSION(KLON,NSWB_MNH) :: ZFLUX_SW_SURF 
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_LW_SURF 
+REAL(KIND=JPRB),DIMENSION(KLON,NSWB_MNH) :: ZFLUX_SW_SURF_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_LW_SURF_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON,NSWB_MNH) :: ZFLUX_DIR_SURF
+REAL(KIND=JPRB),DIMENSION(KLON,NSWB_MNH) :: ZFLUX_DIR_SURF_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON,NSWB_MNH) :: ZFLUX_DIR_SURF_INTO_SUN
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_UV
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_PAR
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_PAR_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_SW_DN_TOA
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_SW_UP_TOA
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_LW_UP_TOA
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_SW_UP_TOA_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZFLUX_LW_UP_TOA_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_SW_DN 
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_LW_DN
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_SW_UP 
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_LW_UP
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_SW_DN_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_LW_DN_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_SW_UP_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZFLUX_LW_UP_CLEAR
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV) :: ZRE_LIQ_UM
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV) :: ZRE_ICE_UM
+REAL(KIND=JPRB),DIMENSION(KLON) :: ZEMIS_OUT   
+REAL(KIND=JPRB),DIMENSION(KLON,KLEV+1) :: ZLWDERIVATIVE
+REAL(KIND=JPRB),DIMENSION(KLON,NSWB_MNH) :: ZSWDIFFUSEBAND
+REAL(KIND=JPRB),DIMENSION(KLON,NSWB_MNH) :: ZSWDIRECTBAND    
+
+
+! New parameters needed for RADIATION_SCHEME wrt ECMWF_RADIATION_VERS2
+! KIDIA, KFDIA (indices of first and last column)
+! PCCN_LAND ; PCCN_SEA (set in ini_radiations_ecrad)
+! PGELAM ; PGEMU (defined from current latitude and longitude)
+! trace gases mixing ratios (climatology in ini_radiations_ecrad)
+! PAEROSOL (aerosol mixing ratios from MACC)
+
+! Parameters not entered as inputs to ECMWF_RADIATION_VERS2
+! Either defined here, or defined in ini_radiations_ecrad
+
+!
+
+#ifdef MNH_ECRAD
+IKIDIA = 1
+IKFDIA = KLON
+ZGELAM = PLON! longitude (in radians)
+ZGEMU = sin(PLAT) ! sin (lat) 
+ZCCNLND(:) = XCCNLND
+ZCCNSEA(:) = XCCNSEA 
+ZCCO2(:,:) = PCCO2
+ZCCH4(:,:) = XCCH4
+ZCN2O(:,:) = XCN2O
+ZCNO2(:,:) = XCNO2
+ZCCFC11(:,:) = XCCFC11
+ZCCFC12(:,:) = XCCFC12
+ZCCFC22(:,:) = XCCFC22
+ZCCCL4 = XCCCL4
+! ZOZON(:,:) = POZON (:,:) * PDP (:,:) * 46.6968 / RG ! OZONE field = (kg kg) * DP IN RADIATION_SCHEME
+ZOZON(:,:) = POZON (:,:) * PDP (:,:) ! OZONE field = (kg kg) * DP IN RADIATION_SCHEME
+
+! ZAEROSOL_OLD(KLON,6,KLEV)
+! PAER(KLON,KLEV,6)
+! Keep the original formulation for aerosols
+DO JJ=1,SIZE(PAER,3)
+    DO JI=1,KLEV
+        ZAEROSOL_OLD(:,JJ,JI) =  PAER(:,JI,JJ)
+    END DO
+END DO
+
+! ! Invert all arrays that enters as inputs from MNH_LIC! PAP, PT, PAPH, PTH
+! 
+! DO JK = 1 , KLEV
+!   JKL = KLEV+ 1 - JK
+!   DO JL = IKIDIA,IKFDIA
+!     ZAPH(JL,JK)=PAPH(JL,JKL+1)
+!     ZAP(JL,JK)=PAP(JL,JKL)
+!     ZOZ(JL,JK)  = ZOZON(JL,JKL) * 46.6968 / RG
+!     ZTH(JL,JK)= PTH(JL,JKL+1)
+!     ZT(JL,JK)=PT(JL,JKL)
+!   ENDDO
+! ENDDO
+! !
+! DO JL=IKIDIA,IKFDIA
+!   ZTH(JL,KLEV+1)= PTH(JL,1)
+!   ZAPH(JL,KLEV+1) = PAPH(JL,1) ! Conversion needed? No because all pressures in Pa
+! ENDDO
+
+! CAMS climatology
+
+
+! aerosol mixing ratio from MACC reanalyses if XAERMACC > 0
+ZAEROSOL(:,:,:) = 0
+
+ZQSWC(:,:) = 0 ! snow mixing ratio set to 0 for the time being
+
+CALL RADIATION_SCHEME  (IKIDIA, IKFDIA,KLON, KLEV, IAER, &
+        PRII0,PMU0, PTS, PALBD, PALBP, &
+        PEMIS, PEMIW,ZCCNLND, ZCCNSEA,ZGELAM, ZGEMU, PLSM, &
+        PAP, PT, PAPH, PTH, &
+        PQ, ZCCO2, ZCCH4, ZCN2O, ZCNO2, ZCCFC11, ZCCFC12, ZCCFC22, ZCCCL4, ZOZON, &
+        PCLFR, PQLWC, PQIWC, PQRWC, ZQSWC, &
+        ZAEROSOL_OLD, ZAEROSOL, &
+        ZFLUX_SW, ZFLUX_LW, ZFLUX_SW_CLEAR, ZFLUX_LW_CLEAR, &
+        ZFLUX_SW_SURF, ZFLUX_LW_SURF, ZFLUX_SW_SURF_CLEAR, ZFLUX_LW_SURF_CLEAR, &
+        ZFLUX_DIR_SURF, ZFLUX_DIR_SURF_CLEAR, ZFLUX_DIR_SURF_INTO_SUN, &
+        ZFLUX_UV, ZFLUX_PAR, ZFLUX_PAR_CLEAR, &
+        ZFLUX_SW_DN_TOA, ZFLUX_SW_UP_TOA, ZFLUX_LW_UP_TOA, &
+        ZFLUX_SW_UP_TOA_CLEAR, ZFLUX_LW_UP_TOA_CLEAR, &
+        ZFLUX_SW_DN, ZFLUX_LW_DN, ZFLUX_SW_UP, ZFLUX_LW_UP, &
+        ZFLUX_SW_DN_CLEAR, ZFLUX_LW_DN_CLEAR, ZFLUX_SW_UP_CLEAR, ZFLUX_LW_UP_CLEAR, &
+        ZRE_LIQ_UM, ZRE_ICE_UM, &
+        ZEMIS_OUT, ZLWDERIVATIVE, &
+        ZSWDIFFUSEBAND, ZSWDIRECTBAND                          )
+     
+
+! PRINT*,"ZFLUX_DIR_SURF(1,:)",SUM(ZFLUX_DIR_SURF(1,:))
+! PRINT*,"ZFLUX_LW_SURF(1)",ZFLUX_LW_SURF(1)
+! PAUSE
+        
+! Once The flux profiles have been computed, compute diagnostics consistent with ECMWF_RADIATION_VERS2
+! Requires conversion from RADIATION_SCHEME outputs into usual outputs consistent with the rest of MESONH
+
+!*         5.     FLUXES, RADIATIVE TENDENCIES, DIAGNOSTICS
+!               ------------------------------------------------
+! note : important
+! After the RADIATION_SCHEME routine, radiative fluxes array are consistent with
+! ECRAD vertical grid : i.e FLUX (:,1) is the TOA flux. It must be reversed for RADIATIONS
+!
+!
+!          5.0 net fluxes
+!
+! Reversing fluxes
+DO JK = 1 , KLEV+1
+  JKL = KLEV+1 -JK +1  
+  DO JL = IKIDIA,IKFDIA
+    ZFLS(JL,JK) = ZFLUX_SW(JL,JKL)
+    ZFLT(JL,JK) = ZFLUX_LW(JL,JKL)
+    ZFCS(JL,JK) = ZFLUX_SW_CLEAR(JL,JKL)
+    ZFCT(JL,JK) = ZFLUX_LW_CLEAR(JL,JKL)
+  ENDDO
+ENDDO
+
+!          5.1 Radiative tendencies in (K/DAY)
+!
+! calculation of DP term (grid orientation consistent with net fluxes,
+! ( see note above) 
+!computation of CPH (RCDAY is computed with CPD)
+DO JKL = 1 , KLEV
+  DO JL = IKIDIA,IKFDIA
+    JK = KLEV+1  - JKL
+    ZDPGCP(JL,JK) = RCDAY/ PDP(JL, JKL)*XCPD/(XCPD+XCPV*PQ(JL, JKL)/(1.-PQ(JL, JKL)) &
+                          +XCL*(PQLWC(JL, JKL)+PQRWC(JL, JKL))+XCI*PQIWC(JL, JKL))
+  END DO
+END DO
+
+! Heating rates prop. to. derivative of net fluxes
+DO JK=1,KLEV
+  DO JL=IKIDIA,IKFDIA       
+    ZDFLWT(JL,JK) = ZFLT(JL,JK+1)-ZFLT(JL,JK)
+    ZDFLWC(JL,JK) = ZFCT(JL,JK+1)-ZFCT(JL,JK)
+    ZDFSWT(JL,JK) = ZFLS(JL,JK+1)-ZFLS(JL,JK)
+    ZDFSWC(JL,JK) = ZFCS(JL,JK+1)-ZFCS(JL,JK)
+!
+    PDTLW(JL,JK) = ZDFLWT(JL,JK) * ZDPGCP(JL,JK) 
+    PDTSW(JL,JK) = ZDFSWT(JL,JK) * ZDPGCP(JL,JK)
+    !clear-sky
+    PDTLW_CS(JL,JK) = ZDFLWC(JL,JK) * ZDPGCP(JL,JK)
+    PDTSW_CS(JL,JK) = ZDFSWC(JL,JK) * ZDPGCP(JL,JK)
+  END DO
+END DO
+!
+!         5.2  Top and Ground fluxes (IR-VIS-NIR) - NB no distinction between VIS and NIR so far - Check signs
+!
+
+PFLUX_TOP_GND_IRVISNIR(:, 1) =   ZFLUX_LW_UP_TOA (:)   ! TOA LW UP
+PFLUX_TOP_GND_IRVISNIR(:, 2) =   ZFLUX_SW_UP_TOA(:)    ! TOA VIS
+PFLUX_TOP_GND_IRVISNIR(:, 3) =   ZFLUX_SW_UP_TOA(:)    ! TOA NIR
+PFLUX_TOP_GND_IRVISNIR(:, 4) =   ZFLUX_LW_SURF (:)     ! Surface LW down
+PFLUX_TOP_GND_IRVISNIR(:, 5) =   ZFLUX_SW_SURF(:,1)        ! Surface VIS down
+PFLUX_TOP_GND_IRVISNIR(:, 6) =   ZFLUX_SW_SURF(:,1)        ! Surface NIR down
+
+!Clear-sky
+!
+PFLUX_TOP_GND_IRVISNIR_CS(:, 1) =   ZFLUX_LW_UP_TOA_CLEAR (:)
+PFLUX_TOP_GND_IRVISNIR_CS(:, 2) =   ZFLUX_SW_UP_TOA_CLEAR(:)
+PFLUX_TOP_GND_IRVISNIR_CS(:, 3) =   ZFLUX_SW_UP_TOA_CLEAR(:)
+PFLUX_TOP_GND_IRVISNIR_CS(:, 4) =   ZFLUX_LW_SURF_CLEAR (:) 
+PFLUX_TOP_GND_IRVISNIR_CS(:, 5) =   ZFLUX_SW_SURF_CLEAR(:,1) 
+PFLUX_TOP_GND_IRVISNIR_CS(:, 6) =   ZFLUX_SW_SURF_CLEAR(:,1)
+!
+
+PSFSWDIR = ZFLUX_DIR_SURF
+PSFSWDIF = ZFLUX_SW_SURF - ZFLUX_DIR_SURF
+
+!             5.2  Radiation Diagnostics 
+! Total fluxes
+DO JK=1,KLEV+1
+  JKL = KLEV+1 -JK +1  
+  DO JL=IKIDIA,IKFDIA   
+    PFSDWN(JL,JK) = ZFLUX_SW_DN(JL,JKL)
+    PFSUP (JL,JK) = ZFLUX_SW_UP (JL,JKL)
+    PFLUX_LW(JL,2,JK) = -ZFLUX_LW_DN(JL,JKL) ! to be consistent with ECMWF_RADIATION_VERS2 where fluxes are always upwards
+    PFLUX_LW(JL,1,JK) = ZFLUX_LW_UP(JL,JKL)
+  END DO
+END DO   
+
+IF (KRAD_DIAG >= 1) THEN ! net fluxes
+    PFLT(:,:) = ZFLT(:,:)
+    PFLS(:,:) = ZFLS(:,:)
+END IF
+!
+IF (KRAD_DIAG >=2) THEN ! clear-sky fluxes
+    DO JK=1,KLEV+1
+        JKL = KLEV+1 -JK +1 
+        DO JL=IKIDIA,IKFDIA  
+            PFCDWN(JL,JK) = ZFLUX_SW_DN_CLEAR(JL,JKL) 
+            PFCUP (JL,JK) = ZFLUX_SW_UP_CLEAR (JL,JKL)
+            PFLUX_CLW(JL,2,JK) = ZFLUX_LW_DN_CLEAR(JL,JKL)
+            PFLUX_CLW(JL,1,JK) = ZFLUX_LW_UP_CLEAR(JL,JKL)
+        END DO
+    END DO  
+END IF
+
+IF (KRAD_DIAG >= 2) THEN ! net fluxes
+    PFCS(:,:) = ZFCS(:,:)
+    PFCT(:,:) = ZFCT(:,:)
+END IF
+
+
+! Unchanged
+IF (KRAD_DIAG >= 3) THEN 
+  ! provisoire 
+  PPLAN_ALB_VIS(:) = XUNDEF
+  PPLAN_ALB_NIR(:) = XUNDEF
+  PPLAN_TRA_VIS(:) = XUNDEF 
+  PPLAN_TRA_NIR(:) = XUNDEF
+  PPLAN_ABS_VIS(:) = XUNDEF 
+  PPLAN_ABS_NIR(:) = XUNDEF
+
+END IF
+
+! QL
+IF (KRAD_DIAG >=4) THEN 
+  IF (.NOT.LRRTM) THEN
+    PEFCL_LWD  (:,:) = XUNDEF ! effective cloudiness LW up and down
+    PEFCL_LWU    (:,:) = XUNDEF
+    PEFCL_RRTM (:,:) = XUNDEF
+  ELSE
+    PEFCL_LWD  (:,:) = XUNDEF
+    PEFCL_LWU    (:,:) = XUNDEF
+    PEFCL_RRTM (:,:)  = XUNDEF
+  END IF
+   
+  PCLSW_TOTAL (:,:)   = XUNDEF
+  PTAU_TOTAL  (:,:,:) = XUNDEF
+  POMEGA_TOTAL(:,:,:) = XUNDEF
+  PCG_TOTAL   (:,:,:) = XUNDEF  ! to be updfated if necessay
+END IF
+!
+
+!    2.2   cloud ice and liquid content and path - QL
+!
+DO JL = IKIDIA,IKFDIA
+    ZFLWP(JL) = 0
+    ZFIWP(JL) = 0
+    ZFRWP(JL) = 0
+    DO JK = 1 , KLEV
+        IKL = KLEV + 1 - JK
+        ZCLFR(JL,IKL)=MAX(REPSC,MIN(PCLFR(JL,IKL),1-REPSC))
+
+! --- Liquid Water Content (g.m-3) and Liquid Water Path (g.m-2)
+!
+        ZLWGKG = MAX(PLWC(JL,IKL)*1000.,0.)
+        ZIWGKG = MAX(PIWC(JL,IKL)*1000.,0.)
+        ZRWGKG = 0.0   
+
+    IF (ZCLFR(JL,IKL) > 1E-2 ) THEN
+        ZLWGKG = ZLWGKG/ZCLFR(JL,IKL) ! contribution of level to water path
+        ZIWGKG = ZIWGKG/ZCLFR(JL,IKL)
+      
+    ELSE
+        ZLWGKG=0.
+        ZIWGKG=0.
+    ENDIF
+
+    ZFLWP(JL) = ZFLWP(JL) + ZLWGKG*PDZ(JL,IKL)
+    ZFIWP(JL) = ZFIWP(JL) + ZIWGKG*PDZ(JL,IKL)
+    ZFRWP(JL) = ZFRWP(JL) + ZRWGKG*PDZ(JL,IKL)
+    
+    END DO   
+END DO
+
+!   Diagnostic for water path  
+IF (KRAD_DIAG >= 4 ) THEN
+    DO JL = IKIDIA,IKFDIA
+        PFLWP(JL,:) = ZFLWP(JL)
+        PFIWP(JL,:) = ZFIWP(JL)
+    END DO
+    PRADIP(:,:) = ZRE_ICE_UM(:,:)
+END IF
+
+PRADLP(:,:) = ZRE_LIQ_UM(:,:)
+
+
+#else
+PRINT *, "ECRAD LIBRARY NOT AVAILABLE = ###ECRAD_INTERFACE###"
+#endif
+    
+END SUBROUTINE ECRAD_INTERFACE    
+
+END MODULE MODI_ECRAD_INTERFACE
diff --git a/src/MNH/end_diag_in_run.f90 b/src/MNH/end_diag_in_run.f90
index c540e8faf7fa75c43f81594cb081c2e3791d31a9..7842d15969d4ce07c420aadb8ff29e54b727c23d 100644
--- a/src/MNH/end_diag_in_run.f90
+++ b/src/MNH/end_diag_in_run.f90
@@ -57,6 +57,7 @@ SUBROUTINE END_DIAG_IN_RUN
 !!    -------------
 !!     Original 11/2003
 !!
+!!                   02/2018 Q.Libois ECRAD
 !! --------------------------------------------------------------------------
 !       
 !*      0. DECLARATIONS
@@ -79,6 +80,8 @@ DEALLOCATE(XCURRENT_LEI   )! Solid latent heat flux
 DEALLOCATE(XCURRENT_GFLUX )! ground flux
 DEALLOCATE(XCURRENT_LW    )! incoming longwave at the surface
 DEALLOCATE(XCURRENT_SW    )! incoming Shortwave at the surface
+IF(ALLOCATED(XCURRENT_SWDIR)) DEALLOCATE(XCURRENT_SWDIR )! incoming Shortwave direct at the surface
+IF(ALLOCATED(XCURRENT_SWDIFF))DEALLOCATE(XCURRENT_SWDIFF)! incoming Shortwave diffuse at the surface
 DEALLOCATE(XCURRENT_T2M   )! temperature at 2m
 DEALLOCATE(XCURRENT_Q2M   )! humidity at 2m
 DEALLOCATE(XCURRENT_HU2M  )! humidity at 2m
diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90
index 9317532ee9ae9e1f405d8157700b7595257e7e52..c3b64caa15e8499f1ee6f6908188f592320d2231 100644
--- a/src/MNH/goto_model_wrapper.f90
+++ b/src/MNH/goto_model_wrapper.f90
@@ -15,8 +15,9 @@
 !!      2014 (Faivre)
 !!      2016  (Leriche) Add MODD_CH_ICE Suppress MODD_CH_DEP_n
 !!      Modification    01/2016  (JP Pinty) Add LIMA
-!!  10/2016     (F Brosse) Add prod/loss terms computation for chemistry  
+!!  10/2016     (F Brosse) Add prod/loss terms computation for chemistry 
 !!                      07/2017 (M.Leriche) Add DIAG chimical surface fluxes
+!                   02/2018 Q.Libois ECRAD
 !-----------------------------------------------------------------
 MODULE MODI_GOTO_MODEL_WRAPPER
 
@@ -72,6 +73,7 @@ USE MODD_PARAM_KAFR_n
 USE MODD_PARAM_MFSHALL_n
 USE MODD_PARAM_n
 USE MODD_PARAM_RAD_n
+USE MODD_PARAM_ECRAD_n
 USE MODD_PASPOL_n
 #ifdef MNH_FOREFIRE
 USE MODD_FOREFIRE_n
@@ -163,6 +165,9 @@ CALL PARAM_KAFR_GOTO_MODEL(KFROM, KTO)
 CALL PARAM_MFSHALL_GOTO_MODEL(KFROM, KTO)
 CALL PARAM_GOTO_MODEL(KFROM, KTO)
 CALL PARAM_RAD_GOTO_MODEL(KFROM, KTO)
+#ifdef MNH_ECRAD
+CALL PARAM_ECRAD_GOTO_MODEL(KFROM, KTO)
+#endif
 CALL PASPOL_GOTO_MODEL(KFROM, KTO)
 #ifdef MNH_FOREFIRE
 CALL FOREFIRE_GOTO_MODEL(KFROM, KTO)
diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90
index ead62f435e4ad26ede5e75d8531e753e5818fe4e..9e25c3d83d7285380bd3e993849bb41d75802556 100644
--- a/src/MNH/ground_paramn.f90
+++ b/src/MNH/ground_paramn.f90
@@ -33,7 +33,7 @@ REAL, DIMENSION(:,:), INTENT(OUT) :: PSFV  ! momentum in x and y directions
 !
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB  ! direct  albedo for each spectral band (-)
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSCA_ALB  ! diffuse albedo for each spectral band (-)
-REAL, DIMENSION(:,:),   INTENT(OUT) :: PEMIS     ! surface emissivity                    (-)
+REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEMIS     ! surface emissivity                    (-)
 REAL, DIMENSION(:,:),   INTENT(OUT) :: PTSRAD    ! surface radiative temperature         (K)
 !
 END SUBROUTINE GROUND_PARAM_n
@@ -109,6 +109,7 @@ END MODULE MODI_GROUND_PARAM_n
 !!      (M.Leriche)            24/03/16 remove flag for chemical surface fluxes
 !!      (M.Leriche)           01/07/2017 Add DIAG chimical surface fluxes
 !!  01/2018      (G.Delautier) SURFEX 8.1
+!!                   02/2018 Q.Libois ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -191,7 +192,7 @@ REAL, DIMENSION(:,:), INTENT(OUT) :: PSFV  ! momentum in x and y directions
 !
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB  ! direct  albedo for each spectral band (-)
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSCA_ALB  ! diffuse albedo for each spectral band (-)
-REAL, DIMENSION(:,:),   INTENT(OUT) :: PEMIS     ! surface emissivity                    (-)
+REAL, DIMENSION(:,:,:),   INTENT(OUT) :: PEMIS     ! surface emissivity                    (-)
 REAL, DIMENSION(:,:),   INTENT(OUT) :: PTSRAD    ! surface radiative temperature         (K)
 !
 !
@@ -649,6 +650,8 @@ IF (LDIAG_IN_RUN) THEN
   !
   XCURRENT_LW   (:,:) = XFLALWD(:,:)
   XCURRENT_SW   (:,:) = SUM(XDIRSRFSWD(:,:,:)+XSCAFLASWD(:,:,:),DIM=3)
+  XCURRENT_SWDIR(:,:) = SUM(XDIRSRFSWD,DIM=3)
+  XCURRENT_SWDIFF(:,:) = SUM(XSCAFLASWD(:,:,:),DIM=3) 
   XCURRENT_SFCO2(:,:) = ZSFCO2(:,:)
   XCURRENT_DSTAOD(:,:)=0.0
   IF (CRAD=='ECMW') THEN
@@ -821,7 +824,9 @@ END DO
 ZSFCO2  (IIB:IIE,IJB:IJE)       = RESHAPE(ZP_SFCO2(:),    ISHAPE_2)
 ZSFU    (IIB:IIE,IJB:IJE)       = RESHAPE(ZP_SFU(:),      ISHAPE_2)
 ZSFV    (IIB:IIE,IJB:IJE)       = RESHAPE(ZP_SFV(:),      ISHAPE_2)
-PEMIS   (IIB:IIE,IJB:IJE)       = RESHAPE(ZP_EMIS(:),     ISHAPE_2)
+DO JLAYER=1,SIZE(PEMIS,3)
+    PEMIS   (IIB:IIE,IJB:IJE,JLAYER)     = RESHAPE(ZP_EMIS(:),     ISHAPE_2)
+END DO
 PTSRAD  (IIB:IIE,IJB:IJE)       = RESHAPE(ZP_TSRAD(:),    ISHAPE_2)
 !
 IF (LDIAG_IN_RUN) THEN
diff --git a/src/MNH/ini_diag_in_run.f90 b/src/MNH/ini_diag_in_run.f90
index e973876a28cb06144547b865767c47f7dd41c5ab..5dd45edd172c3bc9ae13d3ec89622e5dcd26bddf 100644
--- a/src/MNH/ini_diag_in_run.f90
+++ b/src/MNH/ini_diag_in_run.f90
@@ -62,6 +62,7 @@ END MODULE MODI_INI_DIAG_IN_RUN
 !!    MODIFICATIONS
 !!    -------------
 !!     Original 11/2003
+!!                   02/2018 Q.Libois ECRAD
 !!
 !! --------------------------------------------------------------------------
 !       
@@ -100,6 +101,8 @@ IF (LDIAG_IN_RUN) THEN
   ALLOCATE(XCURRENT_GFLUX (KIU,KJU))! ground flux
   ALLOCATE(XCURRENT_LW    (KIU,KJU))! incoming longwave at the surface
   ALLOCATE(XCURRENT_SW    (KIU,KJU))! incoming Shortwave at the surface
+  ALLOCATE(XCURRENT_SWDIR (KIU,KJU))! incoming Shortwave direct at the surface
+  ALLOCATE(XCURRENT_SWDIFF(KIU,KJU))! incoming Shortwave diffuse at the surface  
   ALLOCATE(XCURRENT_T2M   (KIU,KJU))! temperature at 2m
   ALLOCATE(XCURRENT_Q2M   (KIU,KJU))! humidity at 2m
   ALLOCATE(XCURRENT_HU2M   (KIU,KJU))! humidity at 2m
@@ -117,6 +120,8 @@ IF (LDIAG_IN_RUN) THEN
   XCURRENT_GFLUX = XUNDEF
   XCURRENT_LW    = XUNDEF
   XCURRENT_SW    = XUNDEF
+  XCURRENT_SWDIR = XUNDEF
+  XCURRENT_SWDIFF= XUNDEF  
   XCURRENT_T2M   = XUNDEF
   XCURRENT_Q2M   = XUNDEF
   XCURRENT_HU2M  = XUNDEF
@@ -133,6 +138,8 @@ ELSE
   ALLOCATE(XCURRENT_GFLUX (0,0))! ground flux
   ALLOCATE(XCURRENT_LW    (0,0))! incoming longwave at the surface
   ALLOCATE(XCURRENT_SW    (0,0))! incoming Shortwave at the surface
+  ALLOCATE(XCURRENT_SWDIR (0,0))! incoming Shortwave direct at the surface
+  ALLOCATE(XCURRENT_SWDIFF(0,0))! incoming Shortwave diffuse at the surface  
   ALLOCATE(XCURRENT_T2M   (0,0))! temperature at 2m
   ALLOCATE(XCURRENT_Q2M   (0,0))! humidity at 2m
   ALLOCATE(XCURRENT_HU2M  (0,0))! humidity at 2m
diff --git a/src/MNH/ini_lw_setup.f90 b/src/MNH/ini_lw_setup.f90
new file mode 100644
index 0000000000000000000000000000000000000000..e67f466c4af14a9664df360e15b01bc15b29abf7
--- /dev/null
+++ b/src/MNH/ini_lw_setup.f90
@@ -0,0 +1,128 @@
+!MNH_LIC Copyright 1994-2014 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.
+!-----------------------------------------------------------------
+!     ##########################
+      MODULE MODI_INI_LW_SETUP
+!     ##########################
+!
+INTERFACE
+!
+    SUBROUTINE INI_LW_SETUP(HRAD,KLWB_MNH,PLW_BANDS)
+!
+CHARACTER(LEN=*), INTENT(IN)   :: HRAD      ! type of radiation scheme
+INTEGER,          INTENT(IN)   :: KLWB_MNH  ! number of SW band
+REAL,             DIMENSION(:) :: PLW_BANDS ! wavelength in the middle of each band
+!
+END SUBROUTINE INI_LW_SETUP
+!
+END INTERFACE
+!
+END MODULE MODI_INI_LW_SETUP
+!
+!
+!   #######################################################################
+    SUBROUTINE INI_LW_SETUP(HRAD,KLWB_MNH,PLW_BANDS)
+!   #######################################################################
+!
+!!****  *INI_LW_SETUP * - initialisation for RRTM radiation LW bands
+!!
+!!    PURPOSE
+!!    -------
+!!
+!!**  METHOD
+!!    ------
+!!
+!!    EXTERNAL
+!!    --------
+!!      
+!!
+!!    IMPLICIT ARGUMENTS
+!!    ------------------
+!! 
+!!    REFERENCE
+!!    ---------
+!!
+!!    AUTHOR
+!!    ------
+!!      V. Masson
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original    03/03/03
+!-------------------------------------------------------------------------------
+!
+!*       0.    DECLARATIONS
+!              ------------
+!
+!
+IMPLICIT NONE
+!
+!*       0.1   Declarations of dummy arguments :
+!
+CHARACTER(LEN=*), INTENT(IN)   :: HRAD      ! type of radiation scheme
+INTEGER,          INTENT(IN)   :: KLWB_MNH  ! number of SW band
+REAL,             DIMENSION(:) :: PLW_BANDS ! wavelength in the middle of each band
+!
+!*       0.2   declarations of local variables
+!
+!-------------------------------------------------------------------------------
+!-------------------------------------------------------------------------------
+!
+SELECT CASE (HRAD)
+  CASE ('ECMW','ECRA')
+
+! number of LW band used in MESONH between surface and radiation
+! beware of spectral match with RRTM bands which might not be monotically increasing
+
+       PLW_BANDS(1) = 520E-6
+       PLW_BANDS(2) = 30E-6
+       PLW_BANDS(3) = 17.9E-6
+       PLW_BANDS(4) = 15.1E-6
+       PLW_BANDS(5) = 13.2E-6
+       PLW_BANDS(6) = 11.2E-6
+       PLW_BANDS(7) = 9.73E-6
+       PLW_BANDS(8) = 8.87E-6
+       PLW_BANDS(9) = 7.83E-6
+       PLW_BANDS(10) = 6.98E-6
+       PLW_BANDS(11) = 6.16E-6
+       PLW_BANDS(12) = 5.18E-6
+       PLW_BANDS(13) = 4.62E-6
+       PLW_BANDS(14) = 4.32E-6
+       PLW_BANDS(15) = 4.02E-6      
+       PLW_BANDS(16) = 3.59E-6
+  CASE ('FIXE','TOPA','NONE')
+
+! number of SW band used in MESONH between surface and radiation
+
+    IF (KLWB_MNH  == 1) THEN
+       PLW_BANDS = 12E-6
+    ELSEIF (KLWB_MNH  == 16) THEN
+       PLW_BANDS(1) = 520E-6
+       PLW_BANDS(2) = 30E-6
+       PLW_BANDS(3) = 17.9E-6
+       PLW_BANDS(4) = 15.1E-6
+       PLW_BANDS(5) = 13.2E-6
+       PLW_BANDS(6) = 11.2E-6
+       PLW_BANDS(7) = 9.73E-6
+       PLW_BANDS(8) = 8.87E-6
+       PLW_BANDS(9) = 7.83E-6
+       PLW_BANDS(10) = 6.98E-6
+       PLW_BANDS(11) = 6.16E-6
+       PLW_BANDS(12) = 5.18E-6
+       PLW_BANDS(13) = 4.62E-6
+       PLW_BANDS(14) = 4.32E-6
+       PLW_BANDS(15) = 4.02E-6      
+       PLW_BANDS(16) = 3.59E-6
+    ELSE
+!callabortstop
+       CALL ABORT
+       STOP     
+    ENDIF
+
+!
+END SELECT
+!-------------------------------------------------------------------------------
+!
+END SUBROUTINE INI_LW_SETUP
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 669404ea6ff70b4c90b7b624abe1d3fb6f6cc718..b40b3c3df6759f1d3da170c63d35275454c566d0 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -275,6 +275,7 @@ END MODULE MODI_INI_MODEL_n
 !!                   M.Leriche 10/02/17 prevent negative values in LBX(Y)SVS 
 !!                   M.Leriche 01/07/2017 Add DIAG chimical surface fluxes
 !!                   09/2017 Q.Rodier add LTEND_UV_FRC
+!!                   02/2018 Q.Libois ECRAD
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -355,6 +356,7 @@ USE MODD_PASPOL_n
 USE MODI_GATHER_ll
 USE MODI_INI_BUDGET
 USE MODI_INI_SW_SETUP
+USE MODI_INI_LW_SETUP
 USE MODI_SET_GRID
 USE MODI_METRICS
 USE MODI_UPDATE_METRICS
@@ -366,6 +368,7 @@ USE MODI_SET_DIRCOS
 USE MODI_INI_CPL
 USE MODI_INI_RADIATIONS
 USE MODI_INI_RADIATIONS_ECMWF
+USE MODI_INI_RADIATIONS_ECRAD
 USE MODI_CH_INIT_FIELD_n
 USE MODI_INI_DEEP_CONVECTION
 USE MODI_INI_BIKHARDT_n
@@ -428,6 +431,9 @@ USE MODD_CH_M9_n, ONLY:NNONZEROTERMS
 !
 USE MODE_MPPDB
 USE MODI_INIT_AEROSOL_PROPERTIES
+#ifdef MNH_ECRAD
+USE YOERDI   , ONLY :RCCO2
+#endif
 !
 IMPLICIT NONE
 !
@@ -487,7 +493,7 @@ REAL, DIMENSION(:,:),   ALLOCATABLE :: ZBARE  ! bare soil fraction
 !
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZDIR_ALB ! direct albedo
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZSCA_ALB ! diffuse albedo
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZEMIS    ! emissivity
+REAL, DIMENSION(:,:,:),   ALLOCATABLE :: ZEMIS    ! emissivity
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZTSRAD   ! surface temperature
 !
 !
@@ -1246,9 +1252,21 @@ END IF
 !
 !*       3.7   Module MODD_RADIATIONS_n (except XOZON and XAER)
 !
-!
-NSWB_MNH = 6
-ALLOCATE(XSW_BANDS (NSWB_MNH))
+! Initialization of SW bands
+NSWB_OLD = 6 ! Number of bands in ECMWF original scheme (from Fouquart et Bonnel (1980))
+             ! then modified through INI_RADIATIONS_ECMWF but remains equal to 6 practically
+             
+IF (CRAD == 'ECRA') THEN
+    NSWB_MNH = 14  
+ELSE
+    NSWB_MNH = NSWB_OLD  
+END IF
+
+NLWB_MNH = 16 ! For XEMIS initialization (should be spectral in the future)
+
+
+ALLOCATE(XSW_BANDS (NSWB_MNH)) 
+ALLOCATE(XLW_BANDS (NLWB_MNH)) 
 ALLOCATE(XZENITH   (IIU,IJU))
 ALLOCATE(XAZIM     (IIU,IJU))
 ALLOCATE(XALBUV    (IIU,IJU))
@@ -1263,7 +1281,7 @@ IF (CRAD /= 'NONE') THEN
   ALLOCATE(XDIRFLASWD(IIU,IJU,NSWB_MNH))
   ALLOCATE(XDIR_ALB(IIU,IJU,NSWB_MNH))
   ALLOCATE(XSCA_ALB(IIU,IJU,NSWB_MNH))
-  ALLOCATE(XEMIS  (IIU,IJU))
+  ALLOCATE(XEMIS  (IIU,IJU,NLWB_MNH))
   ALLOCATE(XTSRAD (IIU,IJU))    ; XTSRAD = 0.0
   ALLOCATE(XSEA (IIU,IJU))
   ALLOCATE(XZS_XY (IIU,IJU))
@@ -1282,7 +1300,7 @@ ELSE
   ALLOCATE(XDIRFLASWD(0,0,0))
   ALLOCATE(XDIR_ALB(0,0,0))
   ALLOCATE(XSCA_ALB(0,0,0))
-  ALLOCATE(XEMIS  (0,0))
+  ALLOCATE(XEMIS  (0,0,0))
   ALLOCATE(XTSRAD (0,0))
   ALLOCATE(XSEA (0,0))
   ALLOCATE(XZS_XY (0,0))
@@ -1296,7 +1314,7 @@ ELSE
   ALLOCATE(XRADEFF(0,0,0))
 END IF
 
-IF (CRAD == 'ECMW') THEN
+IF (CRAD == 'ECMW' .OR. CRAD == 'ECRA') THEN
   ALLOCATE(XSTROATM(31,6))
   ALLOCATE(XSMLSATM(31,6))
   ALLOCATE(XSMLWATM(31,6))
@@ -1975,12 +1993,16 @@ END IF
 !
 !
 CALL INI_SW_SETUP (CRAD,NSWB_MNH,XSW_BANDS)
+CALL INI_LW_SETUP (CRAD,NLWB_MNH,XLW_BANDS)
 !
 !
 !       18.1.1 Special initialisation for CO2 content
 !              CO2 (molar mass=44) horizontally and vertically homogeneous at 360 ppm
 !
 XCCO2 = 360.0E-06 * 44.0E-03 / XMD
+#ifdef MNH_ECRAD
+RCCO2 = 360.0E-06 * 44.0E-03 / XMD
+#endif
 !
 !
 !*      18.2   Externalized surface fields
@@ -1992,7 +2014,7 @@ ZCO2(:,:) = XCCO2
 
 ALLOCATE(ZDIR_ALB(IIU,IJU,NSWB_MNH))
 ALLOCATE(ZSCA_ALB(IIU,IJU,NSWB_MNH))
-ALLOCATE(ZEMIS  (IIU,IJU))
+ALLOCATE(ZEMIS  (IIU,IJU,NLWB_MNH))
 ALLOCATE(ZTSRAD (IIU,IJU))
 !
 IF (IMASDEV>=46) THEN
@@ -2022,7 +2044,7 @@ IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG  ')) THEN
   CALL GOTO_SURFEX(KMI)
   !* initialization of surface
   CALL INIT_GROUND_PARAM_n ('ALL',SIZE(CSV),CSV,ZCO2,                             &
-                            XZENITH,XAZIM,XSW_BANDS,ZDIR_ALB,ZSCA_ALB,  &
+                            XZENITH,XAZIM,XSW_BANDS,XLW_BANDS,ZDIR_ALB,ZSCA_ALB,  &
                             ZEMIS,ZTSRAD                                )
   !
   IF (SIZE(XEMIS)>0) THEN
@@ -2068,7 +2090,7 @@ DEALLOCATE(ZCO2)
 !
 !* in a RESTART case, reads surface radiative quantities in the MESONH file
 !
-IF (CRAD   == 'ECMW' .AND. CGETRAD=='READ') THEN
+IF ((CRAD  == 'ECMW' .OR. CRAD  == 'ECRA') .AND. CGETRAD=='READ') THEN
   CALL INI_SURF_RAD(HINIFILE, CLUOUT, XDIR_ALB, XSCA_ALB, XEMIS, XTSRAD)
 END IF
 !
@@ -2102,7 +2124,7 @@ IF (CRAD   == 'ECMW') THEN
 !
     CALL INI_RADIATIONS_ECMWF (HINIFILE,HLUOUT,                                           &
                                XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP,          &
-                               CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB,CAER,NAER,NSTATM,          &
+                               CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM,          &
                                XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND              )
 !
     DEALLOCATE(ZSEA,ZTOWN,ZBARE)
@@ -2110,6 +2132,35 @@ IF (CRAD   == 'ECMW') THEN
     XAER_CLIM(:,:,:,:) =XAER(:,:,:,:)
 !
   END IF
+
+ELSE IF (CRAD   == 'ECRA') THEN
+#ifdef MNH_ECRAD
+!* get cover mask for aerosols
+!
+  IF (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG  ') THEN
+    ALLOCATE(ZSEA(IIU,IJU))
+    ALLOCATE(ZTOWN(IIU,IJU))
+    ALLOCATE(ZBARE(IIU,IJU))
+    IF (CSURF=='EXTE') THEN
+      CALL GOTO_SURFEX(KMI)
+      CALL MNHGET_SURF_PARAM_n(PSEA=ZSEA,PTOWN=ZTOWN,PBARE=ZBARE)
+    ELSE
+      ZSEA (:,:) = 1.
+      ZTOWN(:,:) = 0.
+      ZBARE(:,:) = 0.
+    END IF
+!   
+    CALL INI_RADIATIONS_ECRAD (HINIFILE,HLUOUT,                                           &
+                               XZHAT,XPABST,XTHT,XTSRAD,XLAT,XLON,TDTCUR,TDTEXP,          &
+                               CLW,NDLON,NFLEV,NFLUX,NRAD,NSWB_OLD,CAER,NAER,NSTATM,          &
+                               XSTATM,ZSEA,ZTOWN,ZBARE,XOZON, XAER,XDST_WL, LSUBG_COND              )
+
+    DEALLOCATE(ZSEA,ZTOWN,ZBARE)
+    ALLOCATE (XAER_CLIM(SIZE(XAER,1),SIZE(XAER,2),SIZE(XAER,3),SIZE(XAER,4)))
+    XAER_CLIM(:,:,:,:) = XAER(:,:,:,:)
+!
+  END IF
+#endif
 ELSE
   ALLOCATE (XOZON(0,0,0))
   ALLOCATE (XAER(0,0,0,0))
diff --git a/src/MNH/ini_radconf.f90 b/src/MNH/ini_radconf.f90
index 82fdbd380bc44dc26b28339a776acf4fd3018bfd..9bf10914bbac8ec6b921714ecaa6560cf634c0e5 100644
--- a/src/MNH/ini_radconf.f90
+++ b/src/MNH/ini_radconf.f90
@@ -51,43 +51,45 @@ END MODULE MODI_INI_RADCONF
 !     AUTHORS.
 !     --------
 !     F.Solmon, March 2002
+! MODIF
+!!                   02/2018 Q.Libois ECRAD
 !
 !----------------------------------------------------------
 !
 !*      0. DECLARATIONS
 !          ------------
 !
-USE YOMCST   , ONLY : RG, RCPD, RDAY      
+USE OYOMCST   , ONLY : RG, RCPD, RDAY      
 !
-USE YOERAD   , ONLY : NMODE, NOVLP, NLW, NSW, &
+USE OYOERAD   , ONLY : NMODE, NOVLP, NLW, NSW, &
                       NTSW, LRRTM, LONEWSW,LRADIP, LRADLP, LINHOM    
 !   
 USE YOERDU   , ONLY : NUAER, NTRAER, RCDAY, R10E, REPLOG, &
                       REPSC, REPSCO, REPSCQ, REPSCT, REPSCW, DIFF
 !
-USE MODI_SURDI
+USE MODI_OSURDI
 USE MODI_SULWN
-USE MODI_SURRTAB
-USE MODI_SURRTPK
-USE MODI_SURRTRF
-USE MODI_SURRTFTR
-USE MODI_RRTM_KGB1
-USE MODI_RRTM_KGB2
-USE MODI_RRTM_KGB3
-USE MODI_RRTM_KGB4
-USE MODI_RRTM_KGB5
-USE MODI_RRTM_KGB6
-USE MODI_RRTM_KGB7
-USE MODI_RRTM_KGB8
-USE MODI_RRTM_KGB9
-USE MODI_RRTM_KGB10
-USE MODI_RRTM_KGB11
-USE MODI_RRTM_KGB12
-USE MODI_RRTM_KGB13
-USE MODI_RRTM_KGB14
-USE MODI_RRTM_KGB15
-USE MODI_RRTM_KGB16
-USE MODI_RRTM_INIT_140GP
+USE MODI_OSURRTAB
+USE MODI_OSURRTPK
+USE MODI_OSURRTRF
+USE MODI_OSURRTFTR
+!USE MODI_ORRTM_KGB1
+!USE MODI_ORRTM_KGB2
+!USE MODI_ORRTM_KGB3
+!USE MODI_ORRTM_KGB4
+!USE MODI_ORRTM_KGB5
+!USE MODI_ORRTM_KGB6
+!USE MODI_ORRTM_KGB7
+!USE MODI_ORRTM_KGB8
+!USE MODI_ORRTM_KGB9
+!USE MODI_ORRTM_KGB10
+!USE MODI_ORRTM_KGB11
+!USE MODI_ORRTM_KGB12
+!USE MODI_ORRTM_KGB13
+!USE MODI_ORRTM_KGB14
+!USE MODI_ORRTM_KGB15
+!USE MODI_ORRTM_KGB16
+!USE MODI_ORRTM_INIT_140GP
 USE MODI_SUCST
 USE MODI_SUSWN
 USE MODI_SUAERL
@@ -155,36 +157,36 @@ REPLOG = 1.E-12
 !
 ! CALL to the ECMW initialisation routines
 !
-CALL SURDI
+CALL OSURDI
 CALL SULWN
-CALL SURRTAB
-CALL SURRTPK 
-CALL SURRTRF
-CALL SURRTFTR
+CALL OSURRTAB
+CALL OSURRTPK 
+CALL OSURRTRF
+CALL OSURRTFTR
 !
 IF(LRRTM) THEN
-  CALL RRTM_KGB1
-  CALL RRTM_KGB2
-  CALL RRTM_KGB3
-  CALL RRTM_KGB4
-  CALL RRTM_KGB5
-  CALL RRTM_KGB6
-  CALL RRTM_KGB7
-  CALL RRTM_KGB8
-  CALL RRTM_KGB9
-  CALL RRTM_KGB10
-  CALL RRTM_KGB11
-  CALL RRTM_KGB12
-  CALL RRTM_KGB13
-  CALL RRTM_KGB14
-  CALL RRTM_KGB15
-  CALL RRTM_KGB16
+  CALL ORRTM_KGB1
+  CALL ORRTM_KGB2
+  CALL ORRTM_KGB3
+  CALL ORRTM_KGB4
+  CALL ORRTM_KGB5
+  CALL ORRTM_KGB6
+  CALL ORRTM_KGB7
+  CALL ORRTM_KGB8
+  CALL ORRTM_KGB9
+  CALL ORRTM_KGB10
+  CALL ORRTM_KGB11
+  CALL ORRTM_KGB12
+  CALL ORRTM_KGB13
+  CALL ORRTM_KGB14
+  CALL ORRTM_KGB15
+  CALL ORRTM_KGB16
 !
 !*** mji ***
 !Initialization routine for RRTM
 ! Reduce absorption coefficient data from 256 to 140 g-points
 !
-  CALL RRTM_INIT_140GP
+  CALL ORRTM_INIT_140GP
 END IF
 !
 !- basic constants      
diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90
index 44e51a776fd4f187b967c9452c850f3f88b43305..093552b39af456624fdca1f391ff5db249567d8f 100644
--- a/src/MNH/ini_radiations_ecmwf.f90
+++ b/src/MNH/ini_radiations_ecmwf.f90
@@ -182,7 +182,7 @@ USE PARKIND1,  ONLY : JPRB
 USE YOEAERD  , ONLY : RCAEOPS  ,RCAEOPL  ,RCAEOPU  ,RCAEOPD  ,RCTRBGA  ,&
      RCVOBGA  ,RCSTBGA  ,RCTRPT   ,RCAEADM  ,RCAEROS  ,&
      RCAEADK
-USE YOMCST , ONLY : RTT
+USE OYOMCST , ONLY : RTT
 USE YOETHF , ONLY : RTICE
 !
 !MESO-NH modules
diff --git a/src/MNH/ini_radiations_ecrad.f90 b/src/MNH/ini_radiations_ecrad.f90
new file mode 100644
index 0000000000000000000000000000000000000000..ceb2f3bf3b0786be30e25047491cf3ee40fb21a2
--- /dev/null
+++ b/src/MNH/ini_radiations_ecrad.f90
@@ -0,0 +1,264 @@
+!MNH_LIC Copyright 1994-2014 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.
+!-----------------------------------------------------------------
+!--------------- special set of characters for RCS information
+!-----------------------------------------------------------------
+! $Source$ $Revision$
+! masdev4_7 BUG1 2007/06/15 17:47:18
+!-----------------------------------------------------------------
+!     ##########################
+      MODULE MODI_INI_RADIATIONS_ECRAD
+!     ##########################
+!
+INTERFACE
+!
+    SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE,HLUOUT,                      &
+         PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP,              &
+         HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB_OLD,HAER,KAER,KSTATM,                &
+         PSTATM,PSEA,PTOWN,PBARE,POZON, PAER,PDST_WL, OSUBG_COND                    )
+!
+USE MODD_TYPE_DATE
+
+CHARACTER (LEN=*),      INTENT(IN)  :: HINIFILE  ! Name of the initial file
+CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
+                                                 !  of nested models
+CHARACTER (LEN=*),      INTENT(IN) :: HAER       ! aerosol optical thickness climatology
+CHARACTER (LEN=4),      INTENT(IN) :: HLW        ! LW scheme used
+!
+REAL, DIMENSION(:),     INTENT(IN) :: PZHAT ! height level without orography
+REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST! pressure
+REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT  !Temperature
+REAL, DIMENSION(:,:),   INTENT(IN) :: PTSRAD ! surface radiative temperature
+REAL, DIMENSION (:,:),  INTENT(IN) :: PSEA   ! sea fraction
+REAL, DIMENSION (:,:),  INTENT(IN) :: PTOWN  ! town fraction
+REAL, DIMENSION (:,:),  INTENT(IN) :: PBARE  ! bare soil fraction
+REAL, DIMENSION(:,:),   INTENT(IN) :: PLAT, PLON ! arrays of latitude-longitude
+!
+TYPE (DATE_TIME),       INTENT(IN) :: TPDTCUR    ! Current date and time
+                                                 !  which must be communicated in INIT
+TYPE (DATE_TIME),       INTENT(IN) :: TPDTEXP    ! Current date&time. Ajout PP
+!
+INTEGER, INTENT(OUT) :: KDLON   ! number of columns where the radiation
+                                ! calculations are performed
+INTEGER, INTENT(OUT) :: KFLEV   ! number of vertical levels where the radiation
+                                ! calculations are performed
+INTEGER, INTENT(OUT) :: KFLUX   ! number of top and ground fluxes in the output
+INTEGER, INTENT(OUT) :: KRAD    ! number of satellite radiances to synthesize
+INTEGER, INTENT(OUT) :: KAER    ! number of AERosol classes
+INTEGER, INTENT(OUT) :: KSWB_OLD    ! number of SW band
+INTEGER, INTENT(OUT) :: KSTATM  ! index of the STAndard ATMosphere level just
+                                ! above the model top
+!
+REAL, DIMENSION(:,:),   INTENT(OUT) :: PSTATM   ! working standard atmosphere
+!
+REAL, DIMENSION(:,:,:),   POINTER :: POZON      ! ozone mixing ratio ( from climato.)
+REAL, DIMENSION(:,:,:,:), POINTER :: PAER       ! aerosols optical thickness (from climato)
+REAL, DIMENSION(:,:,:,:), POINTER :: PDST_WL    ! aerosols optical thickness (from climato)
+LOGICAL, INTENT(IN)  ::   OSUBG_COND ! Switch for sub-grid condensation
+!
+END SUBROUTINE INI_RADIATIONS_ECRAD
+!
+END INTERFACE
+!
+END MODULE MODI_INI_RADIATIONS_ECRAD
+!
+!
+!   #######################################################################
+    SUBROUTINE INI_RADIATIONS_ECRAD(HINIFILE,HLUOUT,                      &
+         PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP,              &
+         HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB_OLD,HAER,KAER,KSTATM,                &
+         PSTATM,PSEA,PTOWN,PBARE,POZON, PAER,PDST_WL, OSUBG_COND            )
+!   #######################################################################
+!
+! INI_RADIATIONS_ECRAD - Initialization of ECRAD code
+!
+! PURPOSE
+! -------
+!   Declarations and intialization of local variables
+!   Inspired from IFS routine SUECRAD
+!   Initializes all variables of MODD_PARAM_ECRAD_n not initialized in radiation_scheme or through namelist
+!
+! INTERFACE
+! ---------
+!    INI_RADIATIONS_ECRAD is called from INI_MODELN. 
+!
+! AUTHOR
+! ------
+!   Quentin Libois, CNRM
+!   Original: 2018-02-16
+!
+! MODIFICATIONS
+! -------------
+!
+! TO DO
+
+!
+!*       0.    DECLARATIONS
+!              ------------
+!ECMWF and ECRAD radiation scheme specific modules 
+#ifdef MNH_ECRAD
+USE RADIATION_SETUP, ONLY : SETUP_RADIATION_SCHEME
+USE MODI_SURDI
+USE MODI_SURRTAB
+USE MODI_SURRTPK
+USE MODI_SURRTRF
+!USE MODI_RRTM_INIT_140GP
+!USE MODI_SRTM_INIT
+USE MODD_PARAM_ECRAD_n
+USE YOERDI
+#endif
+USE MODD_PARAM_RAD_n, ONLY : XDTRAD
+USE MODD_DYN_n, ONLY : XTSTEP
+USE PARKIND1 , ONLY : JPRB
+
+USE MODI_INI_RADIATIONS_ECMWF
+USE MODD_TYPE_DATE
+
+IMPLICIT NONE
+
+!*       0.1   Declarations of dummy arguments :
+!
+CHARACTER (LEN=*),      INTENT(IN)  :: HINIFILE  ! Name of the initial file
+CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
+                                                 !  of nested models                                               
+CHARACTER (LEN=*),      INTENT(IN) :: HAER       ! aerosol optical thickness climatology
+CHARACTER (LEN=4),      INTENT(IN) :: HLW        ! LW scheme used
+!
+REAL, DIMENSION(:),     INTENT(IN) :: PZHAT ! height level without orography
+REAL, DIMENSION(:,:,:), INTENT(IN) :: PPABST! pressure
+REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHT  !Temperature
+REAL, DIMENSION(:,:),   INTENT(IN) :: PTSRAD ! surface radiative temperature
+REAL, DIMENSION (:,:),  INTENT(IN) :: PSEA   ! sea fraction
+REAL, DIMENSION (:,:),  INTENT(IN) :: PTOWN  ! town fraction
+REAL, DIMENSION (:,:),  INTENT(IN) :: PBARE  ! bare soil fraction
+REAL, DIMENSION(:,:),   INTENT(IN) :: PLAT, PLON ! arrays of latitude-longitude
+!
+TYPE (DATE_TIME),       INTENT(IN) :: TPDTCUR    ! Current date and time
+TYPE (DATE_TIME),       INTENT(IN) :: TPDTEXP    ! Current date&time. Ajout PP
+!
+INTEGER, INTENT(OUT) :: KDLON   ! number of columns where the radiation
+                                ! calculations are performed
+INTEGER, INTENT(OUT) :: KFLEV   ! number of vertical levels where the radiation
+                                ! calculations are performed
+INTEGER, INTENT(OUT) :: KFLUX   ! number of top and ground fluxes in the output
+INTEGER, INTENT(OUT) :: KRAD    ! number of satellite radiances to synthesize
+INTEGER, INTENT(OUT) :: KAER    ! number of AERosol classes
+INTEGER, INTENT(OUT) :: KSWB_OLD    ! number of SW band
+INTEGER, INTENT(OUT) :: KSTATM  ! index of the STAndard ATMosphere level just
+                                ! above the model top
+!
+REAL, DIMENSION(:,:),   INTENT(OUT) :: PSTATM   ! working standard atmosphere
+!
+REAL, DIMENSION(:,:,:),   POINTER :: POZON      ! ozone mixing ratio ( from climato.)
+REAL, DIMENSION(:,:,:,:), POINTER :: PAER       ! aerosols optical thickness (from climato)
+REAL, DIMENSION(:,:,:,:), POINTER :: PDST_WL    ! aerosols optical thickness (from climato)
+LOGICAL, INTENT(IN)  ::   OSUBG_COND ! Switch for sub-grid condensation
+
+#ifdef MNH_ECRAD
+
+! Initialization of ECMWF still neede because many things intialized through this routine
+CALL INI_RADIATIONS_ECMWF (HINIFILE,HLUOUT,                                           &
+                               PZHAT,PPABST,PTHT,PTSRAD,PLAT,PLON,TPDTCUR,TPDTEXP,    &
+                               HLW,KDLON,KFLEV,KFLUX,KRAD,KSWB_OLD,HAER,KAER,KSTATM,       &
+                               PSTATM,PSEA,PTOWN,PBARE,POZON, PAER,PDST_WL, OSUBG_COND )
+
+! ECRAD specific variables
+
+LCCNL = .FALSE.       ! True if CCN over land diagnosed
+LCCNO = .FALSE.       ! True if CCN over sea is diagnosed
+
+! Constant cloud condensation nuclei over land and sea
+! In ECMWF original code, those values were 900 and 150
+XCCNLND = 900_JPRB     ! constant CCN over land in m-3 (needed for Martin et al., 1994 parameterization)
+XCCNSEA = 50_JPRB      ! constant CCN over sea in m-3
+
+! NAERMACC is in the namelist
+! NAERMACC = 0  -> Use of Tegen aerosol climatology
+! NAERMACC = 1  -> Use of MACC aerosol classification
+                
+IF (NAERMACC==0) THEN ! number of aerosol species in MACC climatology
+    NMCVAR = 6
+ELSE    
+    NMCVAR = 12   
+END IF 
+
+! MACC Aerosol climatology parameters
+NMCLAT = 61
+NMCLON = 120
+NMCLEV = 1 ! because optical depth only
+
+! Characteristic height for aerosols vertical distribution
+XEXPBC = 1000 ! Black Carbon
+XEXPSF = 4000 ! Sulfates
+XEXPSS = 1000 ! Sea Salts
+XEXPDS = 3000 ! Dust
+XEXPOM = 2000 ! Organic Matter
+
+NMINICE = 1             ! latitude dependence of RMINICE (0 otherwise)
+XRE2DE = 0.64952_JPRB   ! Conversion factor between effective radius and particle size for ice
+XRMINICE = 60._JPRB     ! Minimum ice cloud radius
+
+! Decorrelation lengths for cloud fraction and liquid water content
+NDECOLAT = 2            ! "Improved" decorrelation length of cloud fraction
+XDECORR_CF = 2.0_JPRB
+XDECORR_CW = 1.0_JPRB
+
+! Constant mixing ratios for trace gases
+XCCH4   = 1.72E-06_JPRB
+XCN2O   = 310.E-09_JPRB
+XCNO2   = 500.E-13_JPRB
+XCCFC11 = 280.E-12_JPRB
+XCCFC12 = 484.E-12_JPRB
+XCCFC22 =   0.E-12_JPRB
+XCCCL4  =   0.E-12_JPRB
+! initialisation YOERDI
+RCCH4   = 1.72E-06_JPRB
+RCN2O   = 310.E-09_JPRB
+RCNO2   = 500.E-13_JPRB
+RCCFC11 = 280.E-12_JPRB
+RCCFC12 = 484.E-12_JPRB
+RCCFC22 =   0.E-12_JPRB
+RCCCL4  =   0.E-12_JPRB
+
+! Radiation computed every NRADFR timesteps
+NRADFR = INT(XDTRAD/XTSTEP)
+
+LCentredTimeSZA = .TRUE. ! compute SZA as centered between radiation time steps
+LAverageSZA = .TRUE. ! compute SZA as average between  radiation time steps.
+                     ! If True, LCentredTimeSZA must be True as well
+
+!- RRTM as LW and SW scheme
+LRRTM = .TRUE.
+LSRTM = .TRUE.   
+
+NREDGLW = 1 ! 140 g-points configuration of RRTM LW
+NREDGSW = 1 ! 112 g-points configuration of RRTM SW
+
+LAPPROXSWUPDATE  = .TRUE.
+LAPPROXLWUPDATE = .TRUE.  
+
+! Directory where to read ecRad databases
+CDATADIR = "."
+
+! Load modules from ifsrrtm
+CALL SURDI
+CALL SURRTAB
+CALL SURRTPK
+CALL SURRTRF
+IF (LRRTM) THEN
+    CALL RRTM_INIT_140GP(trim(CDATADIR)) ! LW
+ENDIF    
+IF (LSRTM) THEN 
+    CALL SRTM_INIT(trim(CDATADIR))       ! SW
+ENDIF
+
+! Use the above parameters to prepare ecRad setup
+CALL SETUP_RADIATION_SCHEME()
+
+#else
+PRINT *, "ECRAD LIBRARY NOT AVAILABLE = ###INI_RADIATIONS_ECRAD###"
+#endif
+
+END SUBROUTINE INI_RADIATIONS_ECRAD
diff --git a/src/MNH/ini_surf_rad.f90 b/src/MNH/ini_surf_rad.f90
index b42199c00ad494d9903f491c7708ad7b22c4f0f8..07e8174028ecf3a56efd1f76534fe9166790c378 100644
--- a/src/MNH/ini_surf_rad.f90
+++ b/src/MNH/ini_surf_rad.f90
@@ -21,7 +21,7 @@ CHARACTER (LEN=*),      INTENT(IN)  :: HINIFILE  ! Name of the initial file
 CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB  ! Direct albedo
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSCA_ALB  ! Diffuse albedo
-REAL, DIMENSION(:,:),   INTENT(OUT) :: PEMIS     ! emissivity
+REAL, DIMENSION(:,:,:),   INTENT(OUT) :: PEMIS     ! emissivity
 REAL, DIMENSION(:,:),   INTENT(OUT) :: PTSRAD    ! radiative surface temperature
 !
 END SUBROUTINE INI_SURF_RAD
@@ -61,6 +61,7 @@ END MODULE MODI_INI_SURF_RAD
 !!    MODIFICATIONS
 !!    -------------
 !!      Original    03/03/03
+!!                   02/2018 Q.Libois ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -76,7 +77,7 @@ CHARACTER (LEN=*),      INTENT(IN)  :: HINIFILE  ! Name of the initial file
 CHARACTER (LEN=*),      INTENT(IN)  :: HLUOUT    ! name for output-listing
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB  ! Direct albedo
 REAL, DIMENSION(:,:,:), INTENT(OUT) :: PSCA_ALB  ! Diffuse albedo
-REAL, DIMENSION(:,:),   INTENT(OUT) :: PEMIS     ! emissivity
+REAL, DIMENSION(:,:,:),   INTENT(OUT) :: PEMIS     ! emissivity
 REAL, DIMENSION(:,:),   INTENT(OUT) :: PTSRAD    ! radiative surface temperature
 !
 !*       0.2   declarations of local variables
diff --git a/src/MNH/ini_sw_setup.f90 b/src/MNH/ini_sw_setup.f90
index 0990e0e18f4ca075a813e35800f0994d8a3d8e4c..e74318b9c236b5ffa7b503650d76cd3c1fa81bef 100644
--- a/src/MNH/ini_sw_setup.f90
+++ b/src/MNH/ini_sw_setup.f90
@@ -57,6 +57,7 @@ END MODULE MODI_INI_SW_SETUP
 !!    -------------
 !!      Original    03/03/03
 !!      modification : 01/09/03  Y. Seity, KSWB_MNH=6
+!!                   02/2018 Q.Libois ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -91,10 +92,26 @@ SELECT CASE (HRAD)
        PSW_BANDS(5) = 1.785E-6
        PSW_BANDS(6) = 3.19E-6
     ELSE
-!callabortstop
-CALL ABORT
+       !callabortstop
+       CALL ABORT
        STOP     
     ENDIF
+    
+  CASE ('ECRA') 
+       PSW_BANDS(1) = 3.462E-6
+       PSW_BANDS(2) = 2.788E-6
+       PSW_BANDS(3) = 2.325E-6
+       PSW_BANDS(4) = 2.046E-6
+       PSW_BANDS(5) = 1.784E-6
+       PSW_BANDS(6) = 1.462E-6
+       PSW_BANDS(7) = 1.270E-6
+       PSW_BANDS(8) = 1.010E-6
+       PSW_BANDS(9) = 0.702E-6
+       PSW_BANDS(10) = 0.533E-6
+       PSW_BANDS(11) = 0.393E-6
+       PSW_BANDS(12) = 0.304E-6
+       PSW_BANDS(13) = 0.231E-6
+       PSW_BANDS(14) = 8.021E-6       
 
   CASE ('FIXE','TOPA','NONE')
 
diff --git a/src/MNH/init_ground_paramn.f90 b/src/MNH/init_ground_paramn.f90
index b1526bee60983198d599e5b85414c123d107fcf6..2b30fc0307d0094eb18b858c98961be4afb3e3b6 100644
--- a/src/MNH/init_ground_paramn.f90
+++ b/src/MNH/init_ground_paramn.f90
@@ -13,7 +13,7 @@
 !     #######################
 INTERFACE
       SUBROUTINE INIT_GROUND_PARAM_n(HINIT,KSV,HSV,PCO2,                       &
-                               PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB,  &
+                               PZENITH,PAZIM,PSW_BANDS,PLW_BANDS,PDIR_ALB,PSCA_ALB,  &
                                PEMIS,PTSRAD                                )
 !
 CHARACTER(LEN=3),                  INTENT(IN)  :: HINIT     ! choice of fields to initialize
@@ -22,10 +22,11 @@ CHARACTER(LEN=6), DIMENSION(KSV),  INTENT(INOUT)::HSV       ! name of all scalar
 REAL,             DIMENSION(:,:),  INTENT(IN)  :: PCO2      ! CO2 concentration (kg/kg)
 REAL,             DIMENSION(:,:),  INTENT(IN)  :: PZENITH   ! solar zenithal angle
 REAL,             DIMENSION(:,:),  INTENT(IN)  :: PAZIM     ! solar azimuthal angle (rad from N, clockwise)
-REAL,             DIMENSION(:),    INTENT(IN)  :: PSW_BANDS ! middle wavelength of each band
+REAL,             DIMENSION(:),    INTENT(IN)  :: PSW_BANDS ! middle wavelength of each SW band
+REAL,             DIMENSION(:),    INTENT(IN)  :: PLW_BANDS ! middle wavelength of each LW band
 REAL,             DIMENSION(:,:,:),INTENT(OUT) :: PDIR_ALB  ! direct albedo for each band
 REAL,             DIMENSION(:,:,:),INTENT(OUT) :: PSCA_ALB  ! diffuse albedo for each band
-REAL,             DIMENSION(:,:),  INTENT(OUT) :: PEMIS     ! emissivity
+REAL,             DIMENSION(:,:,:),INTENT(OUT) :: PEMIS     ! spectral emissivity
 REAL,             DIMENSION(:,:),  INTENT(OUT) :: PTSRAD    ! radiative temperature
 !
 END SUBROUTINE INIT_GROUND_PARAM_n
@@ -35,7 +36,7 @@ END MODULE MODI_INIT_GROUND_PARAM_n
 !
 !     #############################################################
       SUBROUTINE INIT_GROUND_PARAM_n(HINIT,KSV,HSV,PCO2,                       &
-                               PZENITH,PAZIM,PSW_BANDS,PDIR_ALB,PSCA_ALB,  &
+                               PZENITH,PAZIM,PSW_BANDS,PLW_BANDS,PDIR_ALB,PSCA_ALB,  &
                                PEMIS,PTSRAD                                )
 !     #############################################################
 !
@@ -69,6 +70,7 @@ END MODULE MODI_INIT_GROUND_PARAM_n
 !!      Nov.  2010  (J.Escobar) PGI BUG , add SIZE(CSV) to interface
 !!  06/2016     (G.Delautier) phasage surfex 8
 !!  01/2018      (G.Delautier) SURFEX 8.1
+!!                   02/2018 Q.Libois ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -107,10 +109,11 @@ CHARACTER(LEN=6), DIMENSION(KSV),  INTENT(INOUT)::HSV       ! name of all scalar
 REAL,             DIMENSION(:,:),  INTENT(IN)  :: PCO2      ! CO2 concentration (kg/kg)
 REAL,             DIMENSION(:,:),  INTENT(IN)  :: PZENITH   ! solar zenithal angle
 REAL,             DIMENSION(:,:),  INTENT(IN)  :: PAZIM     ! solar azimuthal angle (rad from N, clockwise)
-REAL,             DIMENSION(:),    INTENT(IN)  :: PSW_BANDS ! middle wavelength of each band
+REAL,             DIMENSION(:),    INTENT(IN)  :: PSW_BANDS ! middle wavelength of each SW band
+REAL,             DIMENSION(:),    INTENT(IN)  :: PLW_BANDS ! middle wavelength of each LW band
 REAL,             DIMENSION(:,:,:),INTENT(OUT) :: PDIR_ALB  ! direct albedo for each band
 REAL,             DIMENSION(:,:,:),INTENT(OUT) :: PSCA_ALB  ! diffuse albedo for each band
-REAL,             DIMENSION(:,:),  INTENT(OUT) :: PEMIS     ! emissivity
+REAL,             DIMENSION(:,:,:),  INTENT(OUT) :: PEMIS     ! emissivity
 REAL,             DIMENSION(:,:),  INTENT(OUT) :: PTSRAD    ! radiative temperature
 !
 !
@@ -123,15 +126,15 @@ REAL, DIMENSION(:),    ALLOCATABLE :: ZZENITH   ! solar zenithal angle
 REAL, DIMENSION(:),    ALLOCATABLE :: ZAZIM     ! solar azimuthal angle
 REAL, DIMENSION(:,:),  ALLOCATABLE :: ZDIR_ALB  ! direct albedo
 REAL, DIMENSION(:,:),  ALLOCATABLE :: ZSCA_ALB  ! diffuse albedo
-REAL, DIMENSION(:),    ALLOCATABLE :: ZEMIS     ! emissivity
+REAL, DIMENSION(:),  ALLOCATABLE :: ZEMIS     ! spectral emissivity
 REAL, DIMENSION(:),    ALLOCATABLE :: ZTSRAD    ! radiative temperature
 REAL, DIMENSION(:),    ALLOCATABLE :: ZTSURF
 !
 TYPE(DATE) :: TDATE_END
 !
 REAL :: ZDURATION
-!
 INTEGER :: ISWB  ! number of SW bands
+INTEGER :: ILWB  ! number of LW bands
 INTEGER :: IIU   ! 1st array size
 INTEGER :: IJU   ! 2nd array size
 INTEGER :: IIB   ! X array physical boundary
@@ -146,6 +149,7 @@ INTEGER :: ISV
 !
 !
 ISWB = SIZE(PSW_BANDS)
+ILWB = SIZE(PLW_BANDS)
 !
 CALL GET_DIM_EXT_ll('B',IIU,IJU)
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE)
@@ -204,7 +208,9 @@ PTSRAD   = XUNDEF
 !
 PDIR_ALB(IIB:IIE,IJB:IJE,:) = RESHAPE(ZDIR_ALB, (/ IIE-IIB+1, IJE-IJB+1, ISWB /) )
 PSCA_ALB(IIB:IIE,IJB:IJE,:) = RESHAPE(ZSCA_ALB, (/ IIE-IIB+1, IJE-IJB+1, ISWB /) )
-PEMIS   (IIB:IIE,IJB:IJE)   = RESHAPE(ZEMIS,    (/ IIE-IIB+1, IJE-IJB+1 /)       )
+DO JLAYER=1,SIZE(PEMIS,3)
+  PEMIS   (IIB:IIE,IJB:IJE,JLAYER) = RESHAPE(ZEMIS,    (/ IIE-IIB+1, IJE-IJB+1 /)       )
+END DO
 PTSRAD  (IIB:IIE,IJB:IJE)   = RESHAPE(ZTSRAD,   (/ IIE-IIB+1, IJE-IJB+1 /)       )
 !-------------------------------------------------------------------------------
 DEALLOCATE(ZCO2    )
diff --git a/src/MNH/modd_diag_in_run.f90 b/src/MNH/modd_diag_in_run.f90
index 57ded81dbe73ef4cc1b9fb72d20b2e28f9778683..0bec81d24c3b9cd08b09ef1edafee5bc7c4f2003 100644
--- a/src/MNH/modd_diag_in_run.f90
+++ b/src/MNH/modd_diag_in_run.f90
@@ -9,6 +9,8 @@
 ! MASDEV4_7 modd 2006/10/24 10:07:40
 !-----------------------------------------------------------------
 MODULE MODD_DIAG_IN_RUN
+! Modifications
+!!                   02/2018 Q.Libois ECRAD
 !
 !* stores instantaneous diagnostic arrays for the current time-step
 !
@@ -23,6 +25,8 @@ REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_LEI   ! Solid latent heat flux
 REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_GFLUX ! ground flux
 REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_LW    ! incoming longwave at the surface
 REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_SW    ! incoming Shortwave at the surface
+REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_SWDIR ! incoming Shortwave direct at the surface
+REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_SWDIFF! incoming Shortwave diffuse at the surface
 REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_T2M   ! temperature at 2m
 REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_Q2M   ! humidity at 2m
 REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_HU2M  ! relative humidity at 2m
diff --git a/src/MNH/modd_param_ecradn.f90 b/src/MNH/modd_param_ecradn.f90
new file mode 100644
index 0000000000000000000000000000000000000000..988888427f73a72b906136430fc581646778aa82
--- /dev/null
+++ b/src/MNH/modd_param_ecradn.f90
@@ -0,0 +1,293 @@
+!MNH_LIC Copyright 1994-2014 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.
+!-----------------------------------------------------------------
+!--------------- special set of characters for RCS information
+!-----------------------------------------------------------------
+! $Source$ $Revision$
+! MASDEV4_7 modd 2006/11/23 17:28:26
+!-----------------------------------------------------------------
+!     ######################## 
+      MODULE MODD_PARAM_ECRAD_n
+!     ########################
+!
+!!****  *MODD_PARAM_ECRAD_n* - declaration of the control parameters for
+!!                           calling the ECRAD radiation scheme
+!!
+!!    PURPOSE
+!!    -------
+!!      The purpose of this declarative module is to define the set of space
+!!    and time control parameters for the ECRAD radiation computations.
+!!      Equivalent to YOERAD type YRERAD of IFS
+!!
+!!
+!!**  IMPLICIT ARGUMENTS
+!!    ------------------
+!!      None
+!!
+!!    REFERENCE
+!!    ---------
+!!
+!!
+!!    AUTHOR
+!!    ------
+!!     Q. Libois   *CNRM-GMME*
+!!
+!!    MODIFICATIONS
+!!    -------------
+!!      Original      29/05/2017 add ECRAD parameters as namelist
+!!      Q. Libois
+!-------------------------------------------------------------------------------
+!
+!*       0.   DECLARATIONS
+!             ------------
+
+USE MODD_PARAMETERS, ONLY: JPMODELMAX
+USE PARKIND1 , ONLY : JPIM,JPRB
+#ifdef MNH_ECRAD
+USE radiation_config, ONLY : config_type
+#endif
+IMPLICIT NONE
+
+TYPE PARAM_ECRAD_t
+  ! Parameters entered in namelist NAM_PARAM_ECRAD
+  INTEGER(KIND=JPIM) :: NSWSOLVER        ! SW solver ; 0: 'McICA ; 1: 'SPARTACUS' 2: 'SPARTACUS' with 3D effects    
+  INTEGER(KIND=JPIM) :: NLWSOLVER        ! LW solver ; 0: 'McICA ; 1: 'SPARTACUS' 2: 'SPARTACUS' with 3D effects   
+  INTEGER(KIND=JPIM) :: NLIQOPT          ! optical properties of liquid particles ; 2 = Slingo ; 3 = SOCRATES
+  INTEGER(KIND=JPIM) :: NICEOPT          ! optical properties of liquid particles ; 3 = Fu ; 4 = Baran
+  INTEGER(KIND=JPIM) :: NGAS             ! gas model 1 = 'Monochromatic', 2 = 'RRTMG-IFS', 3 = 'RRTMG-PSRAD'
+  INTEGER(KIND=JPIM) :: NOVLP            ! overlap assumption ; 0= 'Max-Ran' ; 1= 'Exp-Ran'; 2 = 'Exp-Exp'
+  INTEGER(KIND=JPIM) :: NREG             ! Number of regions for Triple Clouds
+  INTEGER(KIND=JPIM) :: NRADLP           ! 0: ERA-15, 1: Zhang and Rossow, 2: Martin (1994), 3: Martin (1994) and Woods (2000)
+  INTEGER(KIND=JPIM) :: NRADIP           ! 0: 40 mum, 1: Liou and Ou (1994), 2: Liou and Ou (1994) improved,
+                                         ! 3: Sun and Rikus (1999)
+  REAL(KIND=JPRB)    :: XCLOUD_FRAC_STD  ! Cloud water content horizontal fractional standard deviation in a gridbox  
+  INTEGER(KIND=JPIM) :: NLWSCATTERING    ! 0: No longwave scattering
+                                         ! 1: Longwave scattering by clouds only
+                                         ! 2: Longwave scattering by clouds and aerosols
+                                
+  ! Parameters initialized in ini_radiations_ecrad - present in yoerad of IFS
+  LOGICAL            :: LCCNO            ! If True CCN over ocean is diagnosed, otherwise default value
+  LOGICAL            :: LCCNL            ! If True CCN over land is diagnosed, otherwise default value
+  REAL(KIND=JPRB)    :: XCCNSEA          ! default CCN over sea
+  REAL(KIND=JPRB)    :: XCCNLND          ! default CCN over land
+  
+  ! Aerosols
+  INTEGER(KIND=JPIM) :: NAERMACC         ! Use of Tegen (0) or MACC (1) aerosol classification
+                                         ! (that is over 6 or 12 aerosols species)
+  INTEGER(KIND=JPIM) :: NMCLAT           ! number of latitudes in MACC climatology
+  INTEGER(KIND=JPIM) :: NMCLON           ! number of longitudes in MACC climatology
+  INTEGER(KIND=JPIM) :: NMCLEV           ! number of vertical levels in MACC climatology              
+  INTEGER(KIND=JPIM) :: NMCVAR           ! number of aerosol species in MACC
+  REAL(KIND=JPRB)    :: XEXPBC            ! exponential height of BC (m)  
+  REAL(KIND=JPRB)    :: XEXPSF            ! exponential height of sulfates (m) 
+  REAL(KIND=JPRB)    :: XEXPSS            ! exponential height of sea salts (m) 
+  REAL(KIND=JPRB)    :: XEXPDS            ! exponential height of dust (m)  
+  REAL(KIND=JPRB)    :: XEXPOM            ! exponential height of organic matter (m)  
+  
+  INTEGER(KIND=JPIM) :: NMINICE          ! variation of RMINICE with latitude (1), or not (0)
+  REAL(KIND=JPRB)    :: XRE2DE           ! CONVERSION FACTOR BETWWEN EFFECTIVE RADIUS AND PARTICLE SIZE
+  REAL(KIND=JPRB)    :: XRMINICE         ! MINIMUM SIZE FOR ICE PARTICLES (um) FOR ICE
+  INTEGER(KIND=JPIM) :: NDECOLAT         ! Latitude dependence of cloud correlation length
+                                         ! 0: SPECIFIED INDEPENDENT OF LATITUDE, 1: SHONK-HOGAN, 2: IMPROVED
+  REAL(KIND=JPRB)    :: XDECORR_CF       ! Decorrelation length (km) for cloud fraction
+  REAL(KIND=JPRB)    :: XDECORR_CW       ! Decorrelation length (km) for cloud water content
+  INTEGER(KIND=JPIM) :: NRADFR           ! radiation every "NRADFR" time steps
+  LOGICAL            :: LCentredTimeSZA  ! Compute solar zenith angle in radiation scheme half way between
+                                         ! calls to radiation scheme (rather than previous behaviour, 
+                                         ! which is half way between calls plus half a model timestep)      
+  LOGICAL            :: LAverageSZA      ! Compute an averaged solar zenith angle across the time interval
+                                         ! required (either a model timestep or a radiationtimestep)
+                                         ! Should be used with LCentredTimeSZA=TRUE.
+  ! Trace gases constant mixing ratios
+  REAL(KIND=JPRB)    :: XCCH4
+  REAL(KIND=JPRB)    :: XCN2O
+  REAL(KIND=JPRB)    :: XCNO2
+  REAL(KIND=JPRB)    :: XCCFC11
+  REAL(KIND=JPRB)    :: XCCFC12
+  REAL(KIND=JPRB)    :: XCCFC22
+  REAL(KIND=JPRB)    :: XCCCL4   
+  
+  ! Use of RRTM for SW and LW
+  LOGICAL :: LRRTM   
+  LOGICAL :: LSRTM  
+  
+  INTEGER(KIND=JPIM) :: NREDGSW          ! Number of gpoints of SW RRTM 
+                                         ! 0 full resolution for RRTM_SW (224)
+                                         ! 1 ECMWF High resolution model configuration (_SW: 112)
+                                         ! 2 ECMWF EPS configuration (_SW: 56)
+  INTEGER(KIND=JPIM) :: NREDGLW          ! Number of gpoints of LW RRTM
+                                         ! 0 full resolution for RRTM_LW (256)
+                                         ! 1 ECMWF High resolution model configuration (_LW: 140)
+                                         ! 2 ECMWF EPS configuration (_LW: 70)
+                                         
+  LOGICAL :: LAPPROXSWUPDATE !Update the shortwave upwelling flux
+                             !every gridpoint to account for the local
+                             !value of surface albedo
+  LOGICAL :: LAPPROXLWUPDATE ! Update the longwave upwelling flux every
+                             !timestep/gridpoint using the stored rate
+                             !of change of the fluxes with respect to
+                             !the surface upwelling longwave flux                                       
+
+  ! Parameters initialized in ini_radiations_ecrad - not present in yoerad of IFS
+  CHARACTER (LEN=255):: CDATADIR! RRTM data directory
+
+  
+!   INTEGER(KIND=JPIM) :: NSW    ! number of SW spectral intervals for albedo
+!   INTEGER(KIND=JPIM) :: NSW_EC ! number of SW spectral intervals for SRTM  
+!  LOGICAL :: LPSRAD
+!  LOGICAL :: LSW_ML_E  
+!  LOGICAL :: LLW_ML_E
+!  LOGICAL :: LEFF3D              ! accounting for 3D effects with Spartacus?
+!  LOGICAL :: LSIDEM              ! Side effects
+  INTEGER(KIND=JPIM) :: NACTAERO
+  INTEGER(KIND=JPIM) :: NAERCLD ! INDEX TO CONTROL SWITCHES FOR AEROSOL-MICROPHYSICS INTERACTION
+#ifdef MNH_ECRAD
+  type(config_type) :: rad_config
+#endif
+!-------------------------------------------------------------------------------
+!
+END TYPE PARAM_ECRAD_t
+
+TYPE(PARAM_ECRAD_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: PARAM_ECRAD_MODEL
+
+! PRINT*,"MODD_PARAM_ECRAD_n",NSWSOLVER
+INTEGER(KIND=JPIM), POINTER :: NSWSOLVER=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NLWSOLVER=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NLIQOPT=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NICEOPT=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NGAS=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NOVLP=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NREG=>NULL()
+!LOGICAL, POINTER :: LEFF3D=>NULL()
+!LOGICAL, POINTER :: LSIDEM=>NULL()
+!LOGICAL, POINTER :: LLWCSCA=>NULL()
+!LOGICAL, POINTER :: LLWASCA=>NULL()
+LOGICAL, POINTER :: LPSRAD=>NULL()
+!LOGICAL, POINTER :: LSW_ML_E=>NULL()
+!LOGICAL, POINTER :: LLW_ML_E=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NAERMACC=>NULL()
+REAL(KIND=JPRB), POINTER :: XDECORR_CF=>NULL() 
+REAL(KIND=JPRB), POINTER :: XDECORR_CW=>NULL() 
+INTEGER(KIND=JPIM), POINTER :: NRADFR=>NULL()
+LOGICAL, POINTER :: LCentredTimeSZA=>NULL()
+LOGICAL, POINTER :: LAverageSZA=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NLWSCATTERING=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NRADLP=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NRADIP=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NACTAERO=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NMCVAR=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NMCLAT=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NMCLON=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NMCLEV=>NULL()
+REAL(KIND=JPRB), POINTER    :: XEXPBC=>NULL()
+REAL(KIND=JPRB), POINTER    :: XEXPSF=>NULL()
+REAL(KIND=JPRB), POINTER    :: XEXPDS=>NULL()
+REAL(KIND=JPRB), POINTER    :: XEXPSS=>NULL()
+REAL(KIND=JPRB), POINTER    :: XEXPOM=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NAERCLD=>NULL() 
+LOGICAL, POINTER :: LCCNO=>NULL() 
+LOGICAL, POINTER :: LCCNL=>NULL()
+REAL(KIND=JPRB), POINTER :: XCCNSEA=>NULL()  
+REAL(KIND=JPRB), POINTER :: XCCNLND=>NULL()  
+REAL(KIND=JPRB), POINTER :: XRE2DE=>NULL()   
+REAL(KIND=JPRB), POINTER :: XRMINICE=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NMINICE=>NULL() 
+INTEGER(KIND=JPIM), POINTER :: NDECOLAT=>NULL()
+REAL(KIND=JPRB), POINTER :: XCLOUD_FRAC_STD=>NULL()
+!INTEGER, POINTER :: NSW=>NULL() 
+!INTEGER, POINTER :: NSW_EC=>NULL() 
+REAL(KIND=JPRB), POINTER :: XCCH4=>NULL()
+REAL(KIND=JPRB), POINTER :: XCN2O=>NULL()
+REAL(KIND=JPRB), POINTER :: XCNO2=>NULL()
+REAL(KIND=JPRB), POINTER :: XCCFC11=>NULL()
+REAL(KIND=JPRB), POINTER :: XCCFC12=>NULL()
+REAL(KIND=JPRB), POINTER :: XCCFC22=>NULL()
+REAL(KIND=JPRB), POINTER :: XCCCL4=>NULL()
+LOGICAL, POINTER :: LRRTM=>NULL()
+LOGICAL, POINTER :: LSRTM=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NREDGLW=>NULL()
+INTEGER(KIND=JPIM), POINTER :: NREDGSW=>NULL()
+LOGICAL, POINTER :: LAPPROXSWUPDATE=>NULL()
+LOGICAL, POINTER :: LAPPROXLWUPDATE=>NULL()
+CHARACTER (LEN=255), POINTER :: CDATADIR=>NULL()
+#ifdef MNH_ECRAD
+type(config_type), pointer :: rad_config
+#endif
+CONTAINS
+
+SUBROUTINE PARAM_ECRAD_GOTO_MODEL(KFROM, KTO)
+INTEGER, INTENT(IN) :: KFROM, KTO
+!
+! Save current state for allocated arrays
+! Current model is set to model KTO
+    NSWSOLVER=>PARAM_ECRAD_MODEL(KTO)%NSWSOLVER
+    NLWSOLVER=>PARAM_ECRAD_MODEL(KTO)%NLWSOLVER
+    NLIQOPT=>PARAM_ECRAD_MODEL(KTO)%NLIQOPT
+    NICEOPT=>PARAM_ECRAD_MODEL(KTO)%NICEOPT
+    NGAS=>PARAM_ECRAD_MODEL(KTO)%NGAS
+    NOVLP=>PARAM_ECRAD_MODEL(KTO)%NOVLP
+    NREG=>PARAM_ECRAD_MODEL(KTO)%NREG
+!    LEFF3D=>PARAM_ECRAD_MODEL(KTO)%LEFF3D
+!    LSIDEM=>PARAM_ECRAD_MODEL(KTO)%LSIDEM
+!    LLWCSCA=>PARAM_ECRAD_MODEL(KTO)%LLWCSCA
+!    LLWASCA=>PARAM_ECRAD_MODEL(KTO)%LLWASCA
+!    LPSRAD=>PARAM_ECRAD_MODEL(KTO)%LPSRAD
+!    LSW_ML_E=>PARAM_ECRAD_MODEL(KTO)%LSW_ML_E
+!    LLW_ML_E=>PARAM_ECRAD_MODEL(KTO)%LLW_ML_E
+    NAERMACC=>PARAM_ECRAD_MODEL(KTO)%NAERMACC
+    XDECORR_CF=>PARAM_ECRAD_MODEL(KTO)%XDECORR_CF
+    XDECORR_CW=>PARAM_ECRAD_MODEL(KTO)%XDECORR_CW
+    NRADFR=>PARAM_ECRAD_MODEL(KTO)%NRADFR
+    LCentredTimeSZA=>PARAM_ECRAD_MODEL(KTO)%LCentredTimeSZA
+    LAverageSZA=>PARAM_ECRAD_MODEL(KTO)%LAverageSZA
+    NLWSCATTERING=>PARAM_ECRAD_MODEL(KTO)%NLWSCATTERING
+    NRADLP=>PARAM_ECRAD_MODEL(KTO)%NRADLP
+    NRADIP=>PARAM_ECRAD_MODEL(KTO)%NRADIP
+    NACTAERO=>PARAM_ECRAD_MODEL(KTO)%NACTAERO    
+    NMCVAR=>PARAM_ECRAD_MODEL(KTO)%NMCVAR
+    NMCLAT=>PARAM_ECRAD_MODEL(KTO)%NMCLAT
+    NMCLON=>PARAM_ECRAD_MODEL(KTO)%NMCLON
+    NMCLEV=>PARAM_ECRAD_MODEL(KTO)%NMCLEV
+    XEXPBC=>PARAM_ECRAD_MODEL(KTO)%XEXPBC
+    XEXPSF=>PARAM_ECRAD_MODEL(KTO)%XEXPSF
+    XEXPSS=>PARAM_ECRAD_MODEL(KTO)%XEXPSS
+    XEXPDS=>PARAM_ECRAD_MODEL(KTO)%XEXPDS
+    XEXPOM=>PARAM_ECRAD_MODEL(KTO)%XEXPOM
+    NAERCLD=>PARAM_ECRAD_MODEL(KTO)%NAERCLD
+    LCCNO=>PARAM_ECRAD_MODEL(KTO)%LCCNO
+    LCCNL=>PARAM_ECRAD_MODEL(KTO)%LCCNL
+    XCCNSEA=>PARAM_ECRAD_MODEL(KTO)%XCCNSEA
+    XCCNLND=>PARAM_ECRAD_MODEL(KTO)%XCCNLND
+    XRE2DE=>PARAM_ECRAD_MODEL(KTO)%XRE2DE
+    XRMINICE=>PARAM_ECRAD_MODEL(KTO)%XRMINICE
+    NMINICE=>PARAM_ECRAD_MODEL(KTO)%NMINICE
+    NDECOLAT=>PARAM_ECRAD_MODEL(KTO)%NDECOLAT
+    XCLOUD_FRAC_STD=>PARAM_ECRAD_MODEL(KTO)%XCLOUD_FRAC_STD
+!     NSW=>PARAM_ECRAD_MODEL(KTO)%NSW
+!     NSW_EC=>PARAM_ECRAD_MODEL(KTO)%NSW_EC
+    XCCH4=>PARAM_ECRAD_MODEL(KTO)%XCCH4   
+    XCN2O=>PARAM_ECRAD_MODEL(KTO)%XCN2O
+    XCNO2=>PARAM_ECRAD_MODEL(KTO)%XCNO2   
+    XCCFC11=>PARAM_ECRAD_MODEL(KTO)%XCCFC11
+    XCCFC12=>PARAM_ECRAD_MODEL(KTO)%XCCFC12  
+    XCCFC22=>PARAM_ECRAD_MODEL(KTO)%XCCFC22
+    XCCCL4=>PARAM_ECRAD_MODEL(KTO)%XCCCL4
+    LRRTM=>PARAM_ECRAD_MODEL(KTO)%LRRTM
+    LSRTM=>PARAM_ECRAD_MODEL(KTO)%LSRTM  
+    NREDGLW=>PARAM_ECRAD_MODEL(KTO)%NREDGLW
+    NREDGSW=>PARAM_ECRAD_MODEL(KTO)%NREDGSW
+    LAPPROXSWUPDATE=>PARAM_ECRAD_MODEL(KTO)%LAPPROXSWUPDATE
+    LAPPROXLWUPDATE=>PARAM_ECRAD_MODEL(KTO)%LAPPROXLWUPDATE
+    CDATADIR=>PARAM_ECRAD_MODEL(KTO)%CDATADIR
+#ifdef MNH_ECRAD
+    rad_config=>PARAM_ECRAD_MODEL(KTO)%rad_config
+#endif
+END SUBROUTINE PARAM_ECRAD_GOTO_MODEL
+
+END MODULE MODD_PARAM_ECRAD_n
+
+
+
+
diff --git a/src/MNH/modd_radiationsn.f90 b/src/MNH/modd_radiationsn.f90
index b2455d8a100d4d6f319dc2942f0550a2fa5926d4..d49d599c478597444fb61832b408fb2c120525a5 100644
--- a/src/MNH/modd_radiationsn.f90
+++ b/src/MNH/modd_radiationsn.f90
@@ -61,7 +61,9 @@ TYPE RADIATIONS_t
   INTEGER :: NFLUX   ! number of top and ground fluxes in the output
   INTEGER :: NRAD    ! number of satellite radiances to synthesize
   INTEGER :: NAER    ! number od AERosol classes
-  INTEGER :: NSWB    ! number of SW bands
+  INTEGER :: NSWB_OLD    ! number of SW bands in ECMWF original code (usually 6)
+  INTEGER :: NSWB_MNH! number of SW bands practically used (14 if ECRAD, NSWB if original code) 
+  INTEGER :: NLWB_MNH! number of LW bands practically used (16 if RRTM) 
   INTEGER :: NSTATM  ! index od the STAndard ATMosphere level just above
 		                 ! the model top
   INTEGER, DIMENSION(:,:), POINTER  :: NCLEARCOL_TM1=>NULL() ! trace of cloud/clear columns at
@@ -90,10 +92,12 @@ TYPE RADIATIONS_t
 !
   REAL, DIMENSION(:,:),   POINTER :: XFLALWD=>NULL()    ! downward LW radiations on flat surface
   REAL, DIMENSION(:,:),   POINTER :: XFLASWD=>NULL()    ! downward SW radiations on flat surface
-!
-  INTEGER                                   :: NSWB_MNH   ! number of SW spectral bands
+
   REAL, DIMENSION(:),     POINTER :: XSW_BANDS=>NULL()  ! value of the wavelentgh
 !                                                       ! in the middle of each SW spectral band
+
+  REAL, DIMENSION(:),     POINTER :: XLW_BANDS=>NULL()  ! value of the wavelentgh
+!                                                       ! in the middle of each LW spectral band
 !
   REAL, DIMENSION(:,:,:), POINTER :: XDIRFLASWD=>NULL() ! downward surface direct    SW radiations
 !                                                       ! BEFORE slope and shadows effects
@@ -106,7 +110,7 @@ TYPE RADIATIONS_t
 !
   REAL, DIMENSION(:,:,:),       POINTER :: XDIR_ALB=>NULL()   ! direct albedo for each spectral band
   REAL, DIMENSION(:,:,:),       POINTER :: XSCA_ALB=>NULL()   ! scattered albedo for each spectral band
-  REAL, DIMENSION(:,:),         POINTER :: XEMIS=>NULL()      ! emissivity
+  REAL, DIMENSION(:,:,:),       POINTER :: XEMIS=>NULL()      ! emissivity
   REAL, DIMENSION(:,:),         POINTER :: XTSRAD=>NULL()      ! surface temperature
   REAL, DIMENSION(:,:),         POINTER :: XSEA=>NULL()       ! sea fraction
 !
@@ -130,7 +134,9 @@ INTEGER, POINTER :: NFLEV=>NULL()
 INTEGER, POINTER :: NFLUX=>NULL()
 INTEGER, POINTER :: NRAD=>NULL()
 INTEGER, POINTER :: NAER=>NULL()
-INTEGER, POINTER :: NSWB=>NULL()
+INTEGER, POINTER :: NSWB_OLD=>NULL()
+INTEGER, POINTER :: NSWB_MNH=>NULL()
+INTEGER, POINTER :: NLWB_MNH=>NULL()
 INTEGER, POINTER :: NSTATM=>NULL()
 INTEGER, DIMENSION(:,:), POINTER  :: NCLEARCOL_TM1=>NULL()
 REAL, POINTER :: XCCO2=>NULL()
@@ -152,14 +158,14 @@ REAL, DIMENSION(:,:),   POINTER :: XSRFLWD=>NULL()
 REAL, DIMENSION(:,:),   POINTER :: XSCASRFSWD=>NULL()
 REAL, DIMENSION(:,:),   POINTER :: XFLALWD=>NULL()
 REAL, DIMENSION(:,:),   POINTER :: XFLASWD=>NULL()
-INTEGER, POINTER :: NSWB_MNH=>NULL()
 REAL, DIMENSION(:),     POINTER :: XSW_BANDS=>NULL()
+REAL, DIMENSION(:),     POINTER :: XLW_BANDS=>NULL()
 REAL, DIMENSION(:,:,:), POINTER :: XDIRFLASWD=>NULL()
 REAL, DIMENSION(:,:,:), POINTER :: XSCAFLASWD=>NULL()
 REAL, DIMENSION(:,:,:), POINTER :: XDIRSRFSWD=>NULL()
 REAL, DIMENSION(:,:,:), POINTER :: XDIR_ALB=>NULL()
 REAL, DIMENSION(:,:,:), POINTER :: XSCA_ALB=>NULL()
-REAL, DIMENSION(:,:),   POINTER :: XEMIS=>NULL()
+REAL, DIMENSION(:,:,:), POINTER :: XEMIS=>NULL()
 REAL, DIMENSION(:,:),   POINTER :: XTSRAD=>NULL()
 REAL, DIMENSION(:,:),   POINTER :: XSEA=>NULL()
 REAL, DIMENSION(:,:),   POINTER :: XZENITH=>NULL()
@@ -193,6 +199,7 @@ RADIATIONS_MODEL(KFROM)%XSCASRFSWD=>XSCASRFSWD
 RADIATIONS_MODEL(KFROM)%XFLALWD=>XFLALWD
 RADIATIONS_MODEL(KFROM)%XFLASWD=>XFLASWD
 RADIATIONS_MODEL(KFROM)%XSW_BANDS=>XSW_BANDS
+RADIATIONS_MODEL(KFROM)%XLW_BANDS=>XLW_BANDS
 RADIATIONS_MODEL(KFROM)%XDIRFLASWD=>XDIRFLASWD
 RADIATIONS_MODEL(KFROM)%XSCAFLASWD=>XSCAFLASWD
 RADIATIONS_MODEL(KFROM)%XDIRSRFSWD=>XDIRSRFSWD
@@ -218,7 +225,9 @@ NFLEV=>RADIATIONS_MODEL(KTO)%NFLEV
 NFLUX=>RADIATIONS_MODEL(KTO)%NFLUX
 NRAD=>RADIATIONS_MODEL(KTO)%NRAD
 NAER=>RADIATIONS_MODEL(KTO)%NAER
-NSWB=>RADIATIONS_MODEL(KTO)%NSWB
+NSWB_OLD=>RADIATIONS_MODEL(KTO)%NSWB_OLD
+NSWB_MNH=>RADIATIONS_MODEL(KTO)%NSWB_MNH
+NLWB_MNH=>RADIATIONS_MODEL(KTO)%NLWB_MNH
 NSTATM=>RADIATIONS_MODEL(KTO)%NSTATM
 NCLEARCOL_TM1=>RADIATIONS_MODEL(KTO)%NCLEARCOL_TM1
 XCCO2=>RADIATIONS_MODEL(KTO)%XCCO2
@@ -240,8 +249,8 @@ XSRFLWD=>RADIATIONS_MODEL(KTO)%XSRFLWD
 XSCASRFSWD=>RADIATIONS_MODEL(KTO)%XSCASRFSWD
 XFLALWD=>RADIATIONS_MODEL(KTO)%XFLALWD
 XFLASWD=>RADIATIONS_MODEL(KTO)%XFLASWD
-NSWB_MNH=>RADIATIONS_MODEL(KTO)%NSWB_MNH
 XSW_BANDS=>RADIATIONS_MODEL(KTO)%XSW_BANDS
+XLW_BANDS=>RADIATIONS_MODEL(KTO)%XLW_BANDS
 XDIRFLASWD=>RADIATIONS_MODEL(KTO)%XDIRFLASWD
 XSCAFLASWD=>RADIATIONS_MODEL(KTO)%XSCAFLASWD
 XDIRSRFSWD=>RADIATIONS_MODEL(KTO)%XDIRSRFSWD
diff --git a/src/MNH/modd_type_station.f90 b/src/MNH/modd_type_station.f90
index 21b13bf05a67388f35d930ccc4a51402e7d0de92..d1cb05be0ef35aaa9965d10eee9f92efec9d0d67 100644
--- a/src/MNH/modd_type_station.f90
+++ b/src/MNH/modd_type_station.f90
@@ -79,7 +79,9 @@ REAL, DIMENSION(:,:),   POINTER :: H=>NULL()      !
 REAL, DIMENSION(:,:),   POINTER :: LE=>NULL()     !
 REAL, DIMENSION(:,:),   POINTER :: LEI=>NULL()    ! 
 REAL, DIMENSION(:,:),   POINTER :: GFLUX=>NULL()  !
-REAL, DIMENSION(:,:),   POINTER :: SW=>NULL()     ! 
+REAL, DIMENSION(:,:),   POINTER :: SW=>NULL()     !
+REAL, DIMENSION(:,:),   POINTER :: SWDIR=>NULL()  ! 
+REAL, DIMENSION(:,:),   POINTER :: SWDIFF=>NULL() !
 REAL, DIMENSION(:,:),   POINTER :: LW=>NULL()     !
 REAL, DIMENSION(:,:),   POINTER :: DSTAOD=>NULL() ! Dust Aerosol Optical Depth
 REAL, DIMENSION(:,:),   POINTER :: SFCO2=>NULL()  ! CO2 surface flux
diff --git a/src/MNH/modn_param_ecradn.f90 b/src/MNH/modn_param_ecradn.f90
new file mode 100644
index 0000000000000000000000000000000000000000..096bf9520c4244010342d0ce36ce2377f5aa8a29
--- /dev/null
+++ b/src/MNH/modn_param_ecradn.f90
@@ -0,0 +1,101 @@
+!MNH_LIC Copyright 1994-2014 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.
+!-----------------------------------------------------------------
+!--------------- special set of characters for RCS information
+!-----------------------------------------------------------------
+! $Source$ $Revision$
+! MASDEV4_7 modn 2006/11/23 17:22:54
+!-----------------------------------------------------------------
+!     ########################  
+      MODULE MODN_PARAM_ECRAD_n
+!     ########################
+!
+!-------------------------------------------------------------------------------
+USE PARKIND1 , ONLY : JPIM,JPRB
+
+!*       0.   DECLARATIONS
+!             ------------
+!
+USE MODD_PARAM_ECRAD_n, ONLY: &
+         NSWSOLVER_n => NSWSOLVER, &
+         NLWSOLVER_n => NLWSOLVER, &
+         NLIQOPT_n => NLIQOPT, &
+         NICEOPT_n => NICEOPT , &
+         NRADLP_n  => NRADLP , &
+         NRADIP_n  => NRADIP , &
+         NGAS_n => NGAS, &
+         NOVLP_n => NOVLP, &
+         NREG_n => NREG, &
+         XCLOUD_FRAC_STD_n => XCLOUD_FRAC_STD, &
+         NLWSCATTERING_n => NLWSCATTERING, &
+         NAERMACC_n => NAERMACC
+!          EFF3D_n => EFF3D, &
+!          SIDEM_n => SIDEM, &
+!          LWCSCA_n => LWCSCA, &
+!          LWASCA_n => LWASCA, &
+!          PSRAD_n => PSRAD, &
+!          SW_ML_E_n => SW_ML_E, &
+!          LW_ML_E_n => LW_ML_E
+
+!
+IMPLICIT NONE
+
+INTEGER(KIND=JPIM), SAVE :: NSWSOLVER
+INTEGER(KIND=JPIM), SAVE :: NLWSOLVER
+INTEGER(KIND=JPIM), SAVE :: NGAS
+INTEGER(KIND=JPIM), SAVE :: NLIQOPT
+INTEGER(KIND=JPIM), SAVE :: NICEOPT
+INTEGER(KIND=JPIM), SAVE :: NOVLP
+INTEGER(KIND=JPIM), SAVE :: NRADLP
+INTEGER(KIND=JPIM), SAVE :: NRADIP
+INTEGER(KIND=JPIM), SAVE :: NREG
+REAL(KIND=JPRB), SAVE    :: XCLOUD_FRAC_STD
+INTEGER(KIND=JPIM), SAVE :: NLWSCATTERING
+INTEGER(KIND=JPIM), SAVE :: NAERMACC
+! LOGICAL, SAVE :: EFF3D
+! LOGICAL, SAVE :: SIDEM
+! LOGICAL, SAVE :: LWCSCA
+! LOGICAL, SAVE :: LWASCA
+! LOGICAL, SAVE :: PSRAD
+! LOGICAL, SAVE :: SW_ML_E
+! LOGICAL, SAVE :: LW_ML_E
+!
+NAMELIST/NAM_PARAM_ECRADn/NSWSOLVER,NLWSOLVER,NRADLP,NRADIP,&
+                          NLIQOPT,NICEOPT,NOVLP,NGAS,NREG,XCLOUD_FRAC_STD,&
+                          NLWSCATTERING, NAERMACC
+!
+CONTAINS
+!
+SUBROUTINE INIT_NAM_PARAM_ECRADn
+  NSWSOLVER = NSWSOLVER_n
+  NLWSOLVER = NLWSOLVER_n
+  NLIQOPT = NLIQOPT_n
+  NICEOPT = NICEOPT_n
+  NOVLP = NOVLP_n
+  NRADLP = NRADLP_n
+  NRADIP = NRADIP_n
+  NGAS = NGAS_n
+  NREG = NREG_n
+  XCLOUD_FRAC_STD = XCLOUD_FRAC_STD_n
+  NLWSCATTERING = NLWSCATTERING_n
+  NAERMACC = NAERMACC_n
+END SUBROUTINE INIT_NAM_PARAM_ECRADn
+
+SUBROUTINE UPDATE_NAM_PARAM_ECRADn
+  NSWSOLVER_n = NSWSOLVER
+  NLWSOLVER_n = NLWSOLVER
+  NLIQOPT_n = NLIQOPT
+  NICEOPT_n = NICEOPT
+  NOVLP_n = NOVLP  
+  NRADLP_n = NRADLP
+  NRADIP_n = NRADIP
+  NGAS_n = NGAS
+  NREG_n = NREG
+  XCLOUD_FRAC_STD_n = XCLOUD_FRAC_STD
+  NLWSCATTERING_n = NLWSCATTERING
+  NAERMACC_n = NAERMACC
+END SUBROUTINE UPDATE_NAM_PARAM_ECRADn
+
+END MODULE MODN_PARAM_ECRAD_n
diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90
index 569541ef7cd5023e635fed57ecea0436d3606f8f..140c39e236572f71e8091ff876be818e8ee3a101 100644
--- a/src/MNH/phys_paramn.f90
+++ b/src/MNH/phys_paramn.f90
@@ -229,6 +229,7 @@ END MODULE MODI_PHYS_PARAM_n
 !!      M. Leriche 02/2017 Avoid negative fluxes if sv=0 outside the physics domain
 !!      C.Lac  10/2017 : ch_monitor and aer_monitor extracted from phys_param
 !!                       to be called directly by modeln as the last process 
+!!                   02/2018 Q.Libois ECRAD
 !!-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -330,6 +331,7 @@ USE MODD_DEF_EDDYUV_FLUX_n         ! Ajout PP
 USE MODD_LATZ_EDFLX
 USE MODD_MNH_SURFEX_n
 USE MODI_SWITCH_SBG_LES_N
+USE MODD_TIME_n 
 !
 USE MODD_PARAM_LIMA,       ONLY : MSEDC => LSEDC, XRTMIN_LIMA=>XRTMIN
 !
@@ -365,7 +367,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE     :: ZSFCO2! surface flux of CO2
 !
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZDIR_ALB ! direct albedo
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZSCA_ALB ! diffuse albedo
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZEMIS    ! emissivity
+REAL, DIMENSION(:,:,:),   ALLOCATABLE :: ZEMIS    ! emissivity
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZTSRAD   ! surface temperature
 REAL, DIMENSION(:,:,:,:), ALLOCATABLE  :: ZRGDST,ZSIGDST,ZNDST,ZSVDST
 REAL, DIMENSION(:,:,:,:), ALLOCATABLE  :: ZRGSLT,ZSIGSLT,ZNSLT,ZSVSLT
@@ -587,7 +589,7 @@ IF (CRAD /='NONE') THEN
 !
 !  test to see if the partial radiations for cloudy must be called
 !
-  IF (CRAD =='ECMW') THEN
+  IF (CRAD =='ECMW' .OR. CRAD =='ECRA') THEN
     CALL TEMPORAL_DIST(TDTCUR%TDATE%YEAR,TDTCUR%TDATE%MONTH,               &
                        TDTCUR%TDATE%DAY, TDTCUR%TIME,                      &
                        TDTRAD_CLONLY%TDATE%YEAR,TDTRAD_CLONLY%TDATE%MONTH, &
@@ -615,7 +617,7 @@ IF (CRAD /='NONE') THEN
 !
 ! tests to see if any cloud exists
 !   
-  IF (CRAD =='ECMW') THEN
+  IF (CRAD =='ECMW' .OR. CRAD =='ECRA') THEN
     IF (GRAD .AND. NRR.LE.3 ) THEN 
       IF( MAXVAL(XCLDFR(:,:,:)).LE. 1.E-10 .AND. OCLOUD_ONLY ) THEN
           GRAD = .FALSE.                ! only the cloudy verticals would be 
@@ -714,10 +716,10 @@ CALL SUNPOS_n   ( XZENITH, ZCOSZEN, ZSINZEN, ZAZIMSOL )
       XDTHRAD(:,:,:) = 0.
       !
 !
-!*        1.3.2 ECMWf radiative surface and atmospheric fluxes
+!*        1.3.2 ECMWF or ECRAD radiative surface and atmospheric fluxes
 !               ----------------------------------------------
 !
-    CASE('ECMW')
+    CASE('ECMW' , 'ECRA')
       IF (LLES_MEAN) OCLOUD_ONLY=.FALSE.
       XRADEFF(:,:,:)=0.0
       XSWU(:,:,:)=0.0
@@ -729,8 +731,8 @@ CALL SUNPOS_n   ( XZENITH, ZCOSZEN, ZSINZEN, ZAZIMSOL )
       CALL RADIATIONS   ( OCLOSE_OUT, HFMFILE, CLUOUT,                             &
                LCLEAR_SKY,OCLOUD_ONLY, NCLEARCOL_TM1,CEFRADL, CEFRADI,COPWSW,COPISW,&
                COPWLW,COPILW, XFUDG,                                                &
-               NDLON, NFLEV, NRAD_DIAG, NFLUX, NRAD, NAER,NSWB, NSTATM, NRAD_COLNBR,&
-               ZCOSZEN, XSEA, XCORSOL,                                              &
+               NDLON, NFLEV, NRAD_DIAG, NFLUX, NRAD,NAER,NSWB_OLD,NSWB_MNH,NLWB_MNH,      &
+               NSTATM, NRAD_COLNBR, ZCOSZEN, XSEA, XCORSOL,                         &
                XDIR_ALB, XSCA_ALB, XEMIS, XCLDFR, XCCO2, XTSRAD, XSTATM, XTHT, XRT, &
                XPABST,XOZON, XAER,XDST_WL, XAER_CLIM, XSVT,                         &
                XDTHRAD, XFLALWD, XDIRFLASWD, XSCAFLASWD, XRHODREF, XZZ ,            &
@@ -1091,7 +1093,7 @@ IF (CSURF=='EXTE') THEN
   !
   ALLOCATE(ZDIR_ALB(IIU,IJU,NSWB_MNH))
   ALLOCATE(ZSCA_ALB(IIU,IJU,NSWB_MNH))
-  ALLOCATE(ZEMIS  (IIU,IJU))
+  ALLOCATE(ZEMIS  (IIU,IJU,NLWB_MNH))
   ALLOCATE(ZTSRAD (IIU,IJU))
   !  
   IKIDM=0
diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90
index dc2b8d682cf1fcac376fa65cbcf169b9ab1887b5..fea9cf3b0c25c0c501c8f8131fe6d5caa4b1b267 100644
--- a/src/MNH/radiations.f90
+++ b/src/MNH/radiations.f90
@@ -3,113 +3,17 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
-!    ########################
+!    ########################n
      MODULE MODI_RADIATIONS   
 !    ########################
 !
-INTERFACE 
-!
-    SUBROUTINE RADIATIONS (OCLOSE_OUT,HFMFILE,HLUOUT,OCLEAR_SKY,OCLOUD_ONLY,&
-               KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW,   &
-               PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, &
-               KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,                         &
-               PDIR_ALB, PSCA_ALB, PEMIS, PCLDFR, PCCO2, PTSRAD, PSTATM,  &
-               PTHT, PRT, PPABST, POZON, PAER,PDST_WL, PAER_CLIM, PSVT,   &
-               PDTHRAD, PSRFLWD, PSRFSWD_DIR,PSRFSWD_DIF,PRHODREF, PZZ,   &
-               PRADEFF, PSWU, PSWD, PLWU, PLWD, PDTHRADSW, PDTHRADLW      )
-!
-LOGICAL, INTENT(IN)                  :: OCLOSE_OUT! flag indicating that a FM
-                                                  ! file is opened during this 
-                                                  ! time-step
-CHARACTER(LEN=*), INTENT(IN)         :: HFMFILE   ! Name of the output
-                                                  ! FM-file
-CHARACTER(LEN=*), INTENT(IN)         :: HLUOUT    ! Output-listing name for
-                                                  ! model n
-LOGICAL, INTENT(IN)                  :: OCLOUD_ONLY! flag for the cloud column
-                                                   !    computations only
-LOGICAL, INTENT(IN)                  :: OCLEAR_SKY ! 
-INTEGER, INTENT(IN)                  :: KDLON   ! number of columns where the
-                                                ! radiation calculations are
-                                                !         performed
-INTEGER, INTENT(IN)                  :: KFLEV   ! number of vertical levels
-                                                !    where the radiation
-                                                ! calculations are performed
-INTEGER, INTENT(IN)                  :: KRAD_DIAG   ! index for the number of
-                                                    !  fields in the output
-INTEGER, INTENT(IN)                  :: KFLUX   ! number of top and ground 
-                                                ! fluxes for the ZFLUX array
-INTEGER, INTENT(IN)                  :: KRAD    ! number of satellite radiances
-                                                ! for the ZRAD and ZRADCS arrays
-INTEGER, INTENT(IN)                  :: KAER    ! number of AERosol classes
-
-INTEGER, INTENT(IN)                  :: KSWB    ! number of SW band  
-INTEGER, INTENT(IN)                  :: KSTATM  ! index of the standard 
-                                                ! atmosphere level just above
-                                                !      the model top
-INTEGER, INTENT(IN)                  :: KRAD_COLNBR ! factor by which the memory
-                                                    ! is splitted
-!
-                                               !Choice of :             
-CHARACTER (LEN=*), INTENT (IN)       :: HEFRADL!cloud liquid effective radius calculation
-CHARACTER (LEN=*), INTENT (IN)       :: HEFRADI!cloud ice effective radius calculation
-CHARACTER (LEN=*), INTENT (IN)       :: HOPWSW !cloud water SW optical properties   
-CHARACTER (LEN=*), INTENT (IN)       :: HOPISW !ice water SW optical properties 
-CHARACTER (LEN=*), INTENT (IN)       :: HOPWLW !cloud water LW optical properties
-CHARACTER (LEN=*), INTENT (IN)       :: HOPILW !ice water  LW optical properties
-REAL,              INTENT(IN)        :: PFUDG  ! subgrid cloud inhomogenity factor
-!
-REAL, DIMENSION(:,:),     INTENT(IN) :: PCOSZEN ! COS(zenithal solar angle)
-REAL,                     INTENT(IN) :: PCORSOL ! SOLar constant CORrection
-REAL, DIMENSION(:,:),     INTENT(IN) :: PSEA    ! Land-sea mask
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PDIR_ALB! Surface direct ALBedo
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PSCA_ALB! Surface diffuse ALBedo
-REAL, DIMENSION(:,:),     INTENT(IN) :: PEMIS   ! Surface IR EMISsivity
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PCLDFR  ! CLouD FRaction
-REAL,                     INTENT(IN) :: PCCO2   ! CO2 content
-REAL, DIMENSION(:,:),     INTENT(IN) :: PTSRAD  ! RADiative Surface Temperature
-REAL, DIMENSION(:,:),     INTENT(IN) :: PSTATM  ! selected standard atmosphere
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PTHT    ! THeta at t
-REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT     ! moist variables at t
-REAL, DIMENSION(:,:,:),   INTENT(IN) :: PPABST  ! pressure at t
-REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT    ! scalar variable ( C2R2 and C1R3  particle) 
-!
-REAL, DIMENSION(:,:,:),   POINTER    :: POZON   ! OZON field from clim.
-REAL, DIMENSION(:,:,:,:), POINTER    :: PAER    ! AERosols optical thickness from clim. 
-REAL, DIMENSION(:,:,:,:), POINTER    :: PDST_WL ! AERosols Extinction.by wavelength 
-REAL, DIMENSION(:,:,:,:), POINTER    :: PAER_CLIM    ! AERosols optical thickness from clim.                                                 ! note : the vertical dimension of 
-                                                ! these fields include the "radiation levels"
-                                                ! above domain top 
-!
-REAL, DIMENSION(:,:,:), INTENT(IN)   :: PRHODREF ![kg/m3] air density
-REAL, DIMENSION(:,:,:), INTENT(IN)   :: PZZ      ![m] height of layers
-!
-INTEGER, DIMENSION(:,:), INTENT(INOUT)  :: KCLEARCOL_TM1 ! trace of cloud/clear col
-                                                         ! at the previous radiation step
-!                                                 
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PDTHRAD ! THeta RADiative Tendancy
-REAL, DIMENSION(:,:),     INTENT(INOUT) :: PSRFLWD ! Downward SuRFace LW Flux
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PSRFSWD_DIR ! Downward SuRFace SW Flux DIRect 
-REAL, DIMENSION(:,:,:),   INTENT(INOUT) :: PSRFSWD_DIF ! Downward SuRFace SW Flux DIFfuse 
-REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PSWU ! upward SW Flux 
-REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PSWD ! downward SW Flux 
-REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PLWU ! upward LW Flux 
-REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PLWD ! downward LW Flux 
-REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PDTHRADSW ! dthrad sw 
-REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PDTHRADLW !  dthradsw
-REAL, DIMENSION(:,:,:),     INTENT(INOUT) :: PRADEFF ! effective radius
-!
-!
-END SUBROUTINE RADIATIONS
-!
-END INTERFACE
-!
-END MODULE MODI_RADIATIONS  
+CONTAINS
 !
 !   #######################################################################
     SUBROUTINE RADIATIONS (OCLOSE_OUT,HFMFILE,HLUOUT,OCLEAR_SKY,OCLOUD_ONLY,&
                KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW,   &
-               PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, &
-               KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,                         &
+               PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB_OLD,   & 
+               KSWB_MNH,KLWB_MNH, KSTATM,KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL,          &
                PDIR_ALB, PSCA_ALB,PEMIS, PCLDFR, PCCO2, PTSRAD, PSTATM,   &
                PTHT, PRT, PPABST, POZON, PAER, PDST_WL, PAER_CLIM, PSVT,  &
                PDTHRAD, PSRFLWD, PSRFSWD_DIR,PSRFSWD_DIF, PRHODREF, PZZ,  &
@@ -210,6 +114,7 @@ END MODULE MODI_RADIATIONS
 !!      J.Escobar 30/03/2017  : Management of compilation of ECMWF_RAD in REAL*8 with MNH_REAL=R4
 !!      J.Escobar 29/06/2017  : Check if Pressure Decreasing with height <-> elsif PB & STOP 
 !!      Q.LIBOIS  06/2017     : correction on CLOUD_ONLY
+!!      Q.Libois  02/2018     : ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -220,8 +125,15 @@ USE MODE_FMWRIT
 USE MODE_FM
 USE MODE_ll
 USE MODI_ECMWF_RADIATION_VERS2
-USE YOESW    , ONLY : RTAUA    ,RPIZA    ,RCGA
-
+USE MODI_ECRAD_INTERFACE
+USE OYOESW    , ONLY : RTAUA    ,RPIZA    ,RCGA
+USE MODD_CONF
+USE MODD_RADIATIONS_n,   ONLY : XDTHRAD, NCLEARCOL_TM1, XFLALWD, &
+                                XZENITH, XDIR_ALB, XSCA_ALB, XEMIS, XTSRAD, &
+                                XDIRSRFSWD, XSCAFLASWD, XDIRFLASWD, XAZIM
+!
+USE MODD_GRID_n , ONLY : XLAT, XLON
+USE MODD_GRID , ONLY : XLAT0, XLON0
 !
 USE MODD_TIME
 USE MODD_CST
@@ -246,6 +158,9 @@ USE MODE_DUSTOPT
 USE MODE_SALTOPT
 USE MODI_AEROOPT_GET
 USE MODD_PARAM_LIMA
+USE MODD_PARAM_n , ONLY : CRAD
+USE MODD_LUNIT_n
+USE MODD_TIME_n
 !
 #ifdef MNH_PGI
 USE MODE_PACK_PGI
@@ -281,7 +196,9 @@ INTEGER, INTENT(IN)                  :: KRAD    ! number of satellite radiances
                                                 ! for the ZRAD and ZRADCS arrays
 INTEGER, INTENT(IN)                  :: KAER    ! number of AERosol classes
 
-INTEGER, INTENT(IN)                  :: KSWB    ! number of SW band  
+INTEGER, INTENT(IN)                  :: KSWB_OLD    ! number of SW band ECMWF 
+INTEGER, INTENT(IN)                  :: KSWB_MNH    ! number of SW band ECRAD
+INTEGER, INTENT(IN)                  :: KLWB_MNH    ! number of LW band ECRAD
 INTEGER, INTENT(IN)                  :: KSTATM  ! index of the standard 
                                                 ! atmosphere level just above
                                                 !      the model top
@@ -302,14 +219,14 @@ REAL, DIMENSION(:,:),     INTENT(IN) :: PSEA    ! Land-sea mask
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PDIR_ALB! Surface direct ALBedo
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PSCA_ALB! Surface diffuse ALBedo
-REAL, DIMENSION(:,:),     INTENT(IN) :: PEMIS   ! Surface IR EMISsivity
+REAL, DIMENSION(:,:,:),   INTENT(IN) :: PEMIS   ! Surface IR EMISsivity
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PCLDFR  ! CLouD FRaction
 REAL,                     INTENT(IN) :: PCCO2   ! CO2 content
 REAL, DIMENSION(:,:),     INTENT(IN) :: PTSRAD  ! RADiative Surface Temperature
 REAL, DIMENSION(:,:),     INTENT(IN) :: PSTATM  ! selected standard atmosphere
 !
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PTHT    ! THeta at t
-REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT     ! moist variables at t
+REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PRT     ! moist variables at t (humidity, cloud water, rain water, ice water)
 REAL, DIMENSION(:,:,:),   INTENT(IN) :: PPABST  ! pressure at t
 REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVT    ! scalar variable ( C2R2 and C1R3  particle)
 !
@@ -350,7 +267,7 @@ LOGICAL, DIMENSION(KFLEV,KDLON) :: GCLOUDT   ! transpose of the GCLOUD array
 LOGICAL, DIMENSION(KDLON)       :: GCLEAR_2D ! .TRUE. for the clear-sky columns
 LOGICAL, DIMENSION(KDLON,KFLEV) :: GCLEAR    ! .TRUE. for all the levels of the 
                                              !                clear-sky columns
-LOGICAL, DIMENSION(KDLON,KSWB)  :: GCLEAR_SWB! .TRUE. for all the bands of the  
+LOGICAL, DIMENSION(KDLON,KSWB_MNH)  :: GCLEAR_SWB! .TRUE. for all the bands of the  
                                              !                clear-sky columns
 INTEGER, DIMENSION(:), ALLOCATABLE :: ICLEAR_2D_TM1 !
 !
@@ -381,31 +298,31 @@ REAL, DIMENSION(:,:), ALLOCATABLE   :: ZPAVE    ! mean-layer pressure
 REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZPAVE_RAD    ! mean-layer pressure
 REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQSAVE   ! saturation specific humidity
 REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQVAVE   ! mean-layer specific humidity
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQLAVE   ! Liquid water KG/KG
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQRAVE   ! Rain water  KG/KG
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQIAVE   ! Ice water Kg/KG
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQLWC   ! liquid water content kg/m3
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQRWC   ! Rain water  content kg/m3
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZQIWC   ! ice water content  kg/m3
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCFAVE   ! mean-layer cloud fraction
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZO3AVE   ! mean-layer ozone content 
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQLAVE   ! Liquid water KG/KG
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQRAVE   ! Rain water  KG/KG
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQIAVE   ! Ice water Kg/KG
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQLWC   ! liquid water content kg/m3
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQRWC   ! Rain water  content kg/m3
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZQIWC   ! ice water content  kg/m3
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCFAVE   ! mean-layer cloud fraction
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZO3AVE   ! mean-layer ozone content 
 REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZPRES_HL ! half-level pressure
 REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZT_HL    ! half-level temperature
 REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZDPRES   ! layer pressure thickness
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2! Cloud water Concentarion (C2R2)
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2! Rain water Concentarion (C2R2)
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3! Ice water Concentarion (C2R2)
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_LIMA! Cloud water Concentration(LIMA)
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_LIMA! Rain water Concentration(LIMA)
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_LIMA! Ice water Concentration(LIMA)
-REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAER     ! aerosol optical thickness
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZALBP    ! spectral surface albedo for direct radiations
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZALBD    ! spectral surface albedo for diffuse radiations 
-REAL, DIMENSION (:),  ALLOCATABLE   :: ZEMIS    ! surface LW  emissivity 
-REAL, DIMENSION (:), ALLOCATABLE    :: ZEMIW    ! surface LW  WINDOW emissivity
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2! Cloud water Concentarion (C2R2)
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2! Rain water Concentarion (C2R2)
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3! Ice water Concentarion (C2R2)
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCCT_LIMA! Cloud water Concentration(LIMA)
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCRT_LIMA! Rain water Concentration(LIMA)
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCIT_LIMA! Ice water Concentration(LIMA)
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE :: ZAER     ! aerosol optical thickness
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZALBP    ! spectral surface albedo for direct radiations
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZALBD    ! spectral surface albedo for diffuse radiations 
+REAL(KIND=JPRB), DIMENSION (:,:),  ALLOCATABLE :: ZEMIS    ! surface LW  emissivity 
+REAL(KIND=JPRB), DIMENSION (:,:), ALLOCATABLE  :: ZEMIW    ! surface LW  WINDOW emissivity
 REAL(KIND=JPRB), DIMENSION(:), ALLOCATABLE     :: ZTS      ! reformatted surface PTSRAD array 
-REAL, DIMENSION(:), ALLOCATABLE     :: ZLSM     ! reformatted land sea mask
-REAL, DIMENSION(:),   ALLOCATABLE   :: ZRMU0    ! Reformatted ZMU0 array
+REAL(KIND=JPRB), DIMENSION(:), ALLOCATABLE     :: ZLSM     ! reformatted land sea mask
+REAL(KIND=JPRB), DIMENSION(:),   ALLOCATABLE   :: ZRMU0    ! Reformatted ZMU0 array
 REAL(KIND=JPRB)                     :: ZRII0    ! corrected solar constant
 !
 REAL, DIMENSION(:,:), ALLOCATABLE :: ZDTLW    ! LW temperature tendency
@@ -449,7 +366,7 @@ REAL, DIMENSION(:,:),   ALLOCATABLE :: ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS
                         ! Clear-Sky  DowNward and UPward   SW Flux profiles
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZFLUX_LW_CS
                         ! Thicknes of the mesh
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZDZ
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZDZ
 !
 REAL, DIMENSION(KDLON,KFLEV) :: ZZDTSW ! SW diabatic heating
 REAL, DIMENSION(KDLON,KFLEV) :: ZZDTLW ! LW diabatic heating
@@ -461,15 +378,15 @@ REAL, DIMENSION(KDLON,SIZE(PSRFSWD_DIR,3)) :: ZZSFSWDIR
 REAL, DIMENSION(KDLON,SIZE(PSRFSWD_DIR,3)) :: ZZSFSWDIF
 !                                      ! SW diffuse surface flux   
 !
-REAL, DIMENSION(KDLON)       :: ZCLOUD ! vertically integrated cloud fraction
+REAL, DIMENSION(KDLON)       :: ZCLOUD ! vertically summed cloud fraction
 !
 REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZEXNT ! Exner function
 REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2))    :: ZLWD    ! surface Downward LW flux
 REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PSRFSWD_DIR,3)) :: ZSWDDIR ! surface
 REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PSRFSWD_DIR,3)) :: ZSWDDIF ! surface Downward SW diffuse flux
-REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),KSWB) :: ZPIZAZ ! Aerosols SSA
-REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),KSWB) :: ZTAUAZ ! Aerosols Optical Detph
-REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),KSWB) :: ZCGAZ  ! Aerosols Asymetric factor
+REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),KSWB_OLD) :: ZPIZAZ ! Aerosols SSA
+REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),KSWB_OLD) :: ZTAUAZ ! Aerosols Optical Detph
+REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),KSWB_OLD) :: ZCGAZ  ! Aerosols Asymetric factor
 REAL :: ZZTGVISC    ! downward surface SW flux (VIS band) for clear_sky
 REAL :: ZZTGNIRC    ! downward surface SW flux (NIR band) for clear_sky
 REAL :: ZZTGIRC     ! downward surface LW flux for clear_sky
@@ -485,8 +402,8 @@ REAL, DIMENSION(KFLEV) :: ZHP_CLEAR ! ensemble mean clear-sky half-lev. pression
 REAL, DIMENSION(KFLEV) :: ZHT_CLEAR ! ensemble mean clear-sky half-lev. temp.
 REAL, DIMENSION(KFLEV) :: ZDP_CLEAR ! ensemble mean clear-sky pressure thickness
 REAL, DIMENSION(KFLEV,KAER) :: ZAER_CLEAR  ! ensemble mean clear-sky aerosols optical thickness
-REAL, DIMENSION(KSWB)       :: ZALBP_CLEAR ! ensemble mean clear-sky surface albedo (parallel)
-REAL, DIMENSION(KSWB)       :: ZALBD_CLEAR ! ensemble mean clear-sky surface albedo (diffuse)
+REAL, DIMENSION(KSWB_MNH)       :: ZALBP_CLEAR ! ensemble mean clear-sky surface albedo (parallel)
+REAL, DIMENSION(KSWB_MNH)       :: ZALBD_CLEAR ! ensemble mean clear-sky surface albedo (diffuse)
 REAL                        :: ZEMIS_CLEAR ! ensemble mean clear-sky surface emissivity
 REAL                        :: ZEMIW_CLEAR ! ensemble mean clear-sky LW window
 REAL                        :: ZRMU0_CLEAR ! ensemble mean clear-sky MU0
@@ -501,33 +418,33 @@ LOGICAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2)) :: ZWORKL
 !  splitted arrays used to split the memory required by the ECMWF_radiation 
 !  subroutine, the fields have the same meaning as their complete counterpart
 !
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZALBP_SPLIT, ZALBD_SPLIT
-REAL, DIMENSION(:),     ALLOCATABLE :: ZEMIS_SPLIT, ZEMIW_SPLIT
-REAL, DIMENSION(:),     ALLOCATABLE :: ZRMU0_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZCFAVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZO3AVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZALBP_SPLIT, ZALBD_SPLIT
+REAL(KIND=JPRB), DIMENSION(:),     ALLOCATABLE :: ZEMIS_SPLIT, ZEMIW_SPLIT
+REAL(KIND=JPRB), DIMENSION(:),     ALLOCATABLE :: ZRMU0_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZCFAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZO3AVE_SPLIT
 REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZT_HL_SPLIT
 REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZPRES_HL_SPLIT
 REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZTAVE_SPLIT
 REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZPAVE_SPLIT
-REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAER_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE :: ZAER_SPLIT
 REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZDPRES_SPLIT
-REAL, DIMENSION(:),     ALLOCATABLE :: ZLSM_SPLIT
+REAL(KIND=JPRB), DIMENSION(:),     ALLOCATABLE :: ZLSM_SPLIT
 REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQVAVE_SPLIT
 REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQSAVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQLAVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQIAVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQRAVE_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQRWC_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQLWC_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZQIWC_SPLIT
-REAL, DIMENSION(:,:),   ALLOCATABLE :: ZDZ_SPLIT
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2_SPLIT
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2_SPLIT
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3_SPLIT
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCCT_LIMA_SPLIT
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCRT_LIMA_SPLIT
-REAL, DIMENSION(:,:), ALLOCATABLE   :: ZCIT_LIMA_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQLAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQIAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQRAVE_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQRWC_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQLWC_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZQIWC_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:),   ALLOCATABLE :: ZDZ_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCCT_C2R2_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCRT_C2R2_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCIT_C1R3_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCCT_LIMA_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCRT_LIMA_SPLIT
+REAL(KIND=JPRB), DIMENSION(:,:), ALLOCATABLE   :: ZCIT_LIMA_SPLIT
 REAL(KIND=JPRB), DIMENSION(:),     ALLOCATABLE :: ZTS_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZSFSWDIR_SPLIT
 REAL, DIMENSION(:,:),   ALLOCATABLE :: ZSFSWDIF_SPLIT
@@ -588,9 +505,9 @@ REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZTAUREL_EQ          !tau/tau
 REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZPIZA_EQ_SPLIT      !Single scattering albedo of aerosols (points,lev,wvl)
 REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZCGA_EQ_SPLIT       !Assymetry factor aerosols            (points,lev,wvl)
 REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE   :: ZTAUREL_EQ_SPLIT    !tau/tau_{550} aerosols               (points,lev,wvl)
-REAL, DIMENSION(KFLEV,KSWB)           :: ZPIZA_EQ_CLEAR      !Single scattering albedo of aerosols (lev,wvl)
-REAL, DIMENSION(KFLEV,KSWB)           :: ZCGA_EQ_CLEAR       !Assymetry factor aerosols            (lev,wvl)
-REAL, DIMENSION(KFLEV,KSWB)           :: ZTAUREL_EQ_CLEAR    !tau/tau_{550} aerosols               (lev,wvl)
+REAL, DIMENSION(KFLEV,KSWB_OLD)           :: ZPIZA_EQ_CLEAR      !Single scattering albedo of aerosols (lev,wvl)
+REAL, DIMENSION(KFLEV,KSWB_OLD)           :: ZCGA_EQ_CLEAR       !Assymetry factor aerosols            (lev,wvl)
+REAL, DIMENSION(KFLEV,KSWB_OLD)           :: ZTAUREL_EQ_CLEAR    !tau/tau_{550} aerosols               (lev,wvl)
 INTEGER                               :: WVL_IDX              !Counter for wavelength
 
 !
@@ -616,7 +533,7 @@ REAL, DIMENSION(SIZE(PDTHRAD,1),SIZE(PDTHRAD,2),SIZE(PDTHRAD,3)) &
 REAL, DIMENSION(SIZE(PDTHRAD,1),SIZE(PDTHRAD,2)) &
      :: ZSTORE_2D   ! 2D work array for storage!
 INTEGER                         :: JBAND       ! Solar band index
-CHARACTER (LEN=4), DIMENSION(KSWB) :: YBAND_NAME  ! Solar band name
+CHARACTER (LEN=4), DIMENSION(KSWB_OLD) :: YBAND_NAME  ! Solar band name
 CHARACTER (LEN=2)               :: YDIR        ! Type of the data field
 !
 INTEGER :: ISWB ! number of SW spectral bands (between radiations and surface schemes)
@@ -629,6 +546,8 @@ INTEGER, DIMENSION(3) :: IMINLOC
 INTEGER :: IINFO_ll
 LOGICAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2)) :: GCLOUD_SURF
 !
+REAL, DIMENSION(:),   ALLOCATABLE :: ZLON,ZLAT
+REAL, DIMENSION(:),   ALLOCATABLE :: ZLON_SPLIT,ZLAT_SPLIT
 !-------------------------------------------------------------------------
 !-------------------------------------------------------------------------
 !-------------------------------------------------------------------------
@@ -662,14 +581,31 @@ IF ( ZMINVAL <= 0.0 ) THEN
    WRITE(ILUOUT,*) ' radiation :: ZDZPABST ', ZMINVAL,' located at ',   IMINLOC
    CALL FLUSH(ILUOUT)
    STOP ' radiation.f90 STOP :: SOMETHING WRONG WITH PRESSURE , ZDZPABST < 0.0  '
-ENDIF 
+ENDIF
+!------------------------------------------------------------------------------
+ALLOCATE(ZLAT(KDLON))
+ALLOCATE(ZLON(KDLON))
+
+IF(LCARTESIAN) THEN
+  ZLAT(:) = XLAT0*(XPI/180.)
+  ZLON(:) = XLON0*(XPI/180.)
+ELSE
+  DO JJ=IJB,IJE
+    DO JI=IIB,IIE
+        IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
+        ZLAT(IIJ) =  XLAT(JI,JJ)*(XPI/180.)
+        ZLON(IIJ) =  XLON(JI,JJ)*(XPI/180.)
+    END DO
+  END DO
+END IF
 !-------------------------------------------------------------------------------
 !
 !*       2.    INITIALIZES THE MEAN-LAYER VARIABLES
 !              ------------------------------------
 !
 ZEXNT(:,:,:)= ( PPABST(:,:,:)/XP00 ) ** (XRD/XCPD)
-! 
+!
+! Columns where radiation is computed are put on a single line
 ALLOCATE(ZTAVE(KDLON,KFLEV))
 ALLOCATE(ZQVAVE(KDLON,KFLEV))
 ALLOCATE(ZQLAVE(KDLON,KFLEV))
@@ -698,7 +634,7 @@ DO JK=IKB,IKE
     DO JI=IIB,IIE
       IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
       ZDZ(IIJ,JKRAD)  =  PZZ(JI,JJ,JK+1) - PZZ(JI,JJ,JK)
-      ZTAVE(IIJ,JKRAD)  = PTHT(JI,JJ,JK)*ZEXNT(JI,JJ,JK)
+      ZTAVE(IIJ,JKRAD)  = PTHT(JI,JJ,JK)*ZEXNT(JI,JJ,JK) ! Conversion potential temperature -> actual temperature
     END DO
   END DO
 END DO
@@ -852,14 +788,13 @@ DO JK=IKB,IKE+1
     END DO
   END DO
 END DO
-!
-!  Standard atmosphere extension
-!
+
+!  Standard atmosphere extension - pressure
 !* begining at ikup+1 level allows to use a model domain higher than 50km
 !
 DO JK=IKUP+1,KFLEV+1
   JK1 = (KSTATM-1)+(JK-IKUP)
-  ZPRES_HL(:,JK) = PSTATM(JK1,2)*100.0
+  ZPRES_HL(:,JK) = PSTATM(JK1,2)*100.0 ! mb -> Pa
 END DO
 !
 !  Surface temperature at the first level
@@ -886,8 +821,7 @@ DO JJ=IJB,IJE
   END DO
 END DO
 !
-!  Standard atmosphere extension
-!
+!  Standard atmosphere extension - temperature
 !* begining at ikup+1 level allows to use a model domain higher than 50km
 !
 DO JK=IKUP+1,KFLEV+1
@@ -904,11 +838,11 @@ DO JKRAD=1,KFLEV
   ZDPRES(:,JKRAD)=ZPRES_HL(:,JKRAD)-ZPRES_HL(:,JKRAD+1)
 END DO
 !-----------------------------------------------------------------------
-!*       4.    INITIALIZES THE AEROSOLS and OZONE PROFILES from climatlogy
+!*       4.    INITIALIZES THE AEROSOLS and OZONE PROFILES from climatology
 !	           -------------------------------------------
 !
 !        4.1    AEROSOL optical thickness
-!
+! EXPL -> defined online, otherwise climatology
 IF (CAOP=='EXPL') THEN
    GAOP = .TRUE.
 ELSE
@@ -916,28 +850,28 @@ ELSE
 ENDIF
 !
 IF (CAOP=='EXPL') THEN
-   ALLOCATE(ZPIZA_EQ_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZCGA_EQ_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZTAUREL_EQ_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
+   ALLOCATE(ZPIZA_EQ_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZCGA_EQ_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZTAUREL_EQ_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
 
-   ALLOCATE(ZPIZA_DST_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZCGA_DST_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZTAUREL_DST_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB)) 
+   ALLOCATE(ZPIZA_DST_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZCGA_DST_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZTAUREL_DST_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD)) 
    ALLOCATE(PAER_DST(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3)))
 
-   ALLOCATE(ZPIZA_AER_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZCGA_AER_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZTAUREL_AER_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
+   ALLOCATE(ZPIZA_AER_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZCGA_AER_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZTAUREL_AER_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
    ALLOCATE(PAER_AER(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3)))
 
-   ALLOCATE(ZPIZA_SLT_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZCGA_SLT_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
-   ALLOCATE(ZTAUREL_SLT_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB))
+   ALLOCATE(ZPIZA_SLT_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZCGA_SLT_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
+   ALLOCATE(ZTAUREL_SLT_TMP(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3),KSWB_OLD))
    ALLOCATE(PAER_SLT(SIZE(PAER,1),SIZE(PAER,2),SIZE(PAER,3)))
    
 
-   ALLOCATE(ZII(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3),KSWB))
-   ALLOCATE(ZIR(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3),KSWB))
+   ALLOCATE(ZII(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3),KSWB_OLD))
+   ALLOCATE(ZIR(SIZE(PSVT,1),SIZE(PSVT,2),SIZE(PSVT,3),KSWB_OLD))
 
   ZPIZA_EQ_TMP = 0.
   ZCGA_EQ_TMP = 0.
@@ -968,7 +902,7 @@ IF (CAOP=='EXPL') THEN
         ,ZCGA_AER_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:)    &  !O [-] assymetry factor for aerosols
         ,ZTAUREL_AER_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:) &  !O [-] opt.depth(wvl=lambda)/opt.depth(wvl=550nm)
         ,PAER_AER(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT)            &  !O [-] optical depth of aerosols at wvl=550nm
-        ,KSWB                                    &  !I |nbr] number of shortwave bands
+        ,KSWB_OLD                                    &  !I |nbr] number of shortwave bands
         ,ZIR(IIB:IIE,IJB:IJE,:,:) &  !O [-] opt.depth(wvl=lambda)/opt.depth(wvl=550nm)
         ,ZII(IIB:IIE,IJB:IJE,:,:) &  !O [-] opt.depth(wvl=lambda)/opt.depth(wvl=550nm)
         )
@@ -982,9 +916,9 @@ IF (CAOP=='EXPL') THEN
         ,ZCGA_DST_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:)    &  !O [-] assymetry factor for dust
         ,ZTAUREL_DST_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:) &  !O [-] opt.depth(wvl=lambda)/opt.depth(wvl=550nm)
         ,PAER_DST(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT)            &  !O [-] optical depth of dust at wvl=550nm
-        ,KSWB                                    &  !I |nbr] number of shortwave bands
+        ,KSWB_OLD                                   &  !I |nbr] number of shortwave bands
         )
-   DO WVL_IDX=1,KSWB
+   DO WVL_IDX=1,KSWB_OLD
      PDST_WL(:,:,:,WVL_IDX) = ZTAUREL_DST_TMP(:,:,:,WVL_IDX)* PAER(:,:,:,3)             
    ENDDO
  ENDIF
@@ -997,7 +931,7 @@ IF (CAOP=='EXPL') THEN
         ,ZCGA_SLT_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:)    &  !O [-] assymetry factor for sea salt
         ,ZTAUREL_SLT_TMP(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT,:) &  !O [-] opt.depth(wvl=lambda)/opt.depth(wvl=550nm)
         ,PAER_SLT(IIB:IIE,IJB:IJE,IKB-JPVEXT:IKE-JPVEXT)            &  !O [-] optical depth of sea salt at wvl=550nm
-        ,KSWB                                    &  !I |nbr] number of shortwave bands
+        ,KSWB_OLD                                    &  !I |nbr] number of shortwave bands
         )
 
  ENDIF
@@ -1035,7 +969,7 @@ ENDIF
 ZTAUAZ(:,:,:,:) = 0.
 ZPIZAZ(:,:,:,:) = 0.
 ZCGAZ(:,:,:,:)  = 0.
-DO WVL_IDX=1,KSWB
+DO WVL_IDX=1,KSWB_OLD
  DO JAE=1,KAER
       !Special optical properties for dust
       IF (CAOP=='EXPL'.AND.(JAE==3)) THEN
@@ -1085,6 +1019,7 @@ ENDDO
 ALLOCATE(ZAER(KDLON,KFLEV,KAER))
 ! Aerosol classes
 ! 1=Continental   2=Maritime   3=Desert     4=Urban     5=Volcanic 6=Stratos.Bckgnd
+! Loaded from climatology
 DO JJ=IJB,IJE
    DO JI=IIB,IIE
       IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
@@ -1116,9 +1051,9 @@ IF ((CAOP=='EXPL') .AND. LORILAM ) THEN
   END DO
 END IF
 !
-ALLOCATE(ZPIZA_EQ(KDLON,KFLEV,KSWB))
-ALLOCATE(ZCGA_EQ(KDLON,KFLEV,KSWB))
-ALLOCATE(ZTAUREL_EQ(KDLON,KFLEV,KSWB))
+ALLOCATE(ZPIZA_EQ(KDLON,KFLEV,KSWB_OLD))
+ALLOCATE(ZCGA_EQ(KDLON,KFLEV,KSWB_OLD))
+ALLOCATE(ZTAUREL_EQ(KDLON,KFLEV,KSWB_OLD))
 IF(CAOP=='EXPL')THEN
     !Transform from vector of type #lon #lat #lev #wvl
     !to vectors of type #points, #levs, #wavelengths
@@ -1173,16 +1108,17 @@ END DO
 ALLOCATE(ZRMU0(KDLON))
 ALLOCATE(ZLSM(KDLON))
 ! 
-ALLOCATE(ZALBP(KDLON,KSWB))
-ALLOCATE(ZALBD(KDLON,KSWB))
+ALLOCATE(ZALBP(KDLON,KSWB_MNH))
+ALLOCATE(ZALBD(KDLON,KSWB_MNH))
+
 !
-ALLOCATE(ZEMIS(KDLON))
-ALLOCATE(ZEMIW(KDLON))
+ALLOCATE(ZEMIS(KDLON,KLWB_MNH))
+ALLOCATE(ZEMIW(KDLON,KLWB_MNH))
 !
 DO JJ=IJB,IJE
   DO JI=IIB,IIE
     IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
-    ZEMIS(IIJ)   = PEMIS(JI,JJ)
+    ZEMIS(IIJ,:)   = PEMIS(JI,JJ,:)
     ZRMU0(IIJ)    = PCOSZEN(JI,JJ)
     ZLSM(IIJ)     = 1.0 - PSEA(JI,JJ)  
   END DO
@@ -1215,10 +1151,10 @@ END IF
 !
 !
 ! LW emissivity
-ZEMIW(:)= ZEMIS(:)
+ZEMIW(:,:)= ZEMIS(:,:)
 !
 !solar constant
-ZRII0= PCORSOL*XI0
+ZRII0= PCORSOL*XI0  ! solar constant multiplied by seasonal variations due to Earth-Sun distance
 !
 !
 !
@@ -1226,7 +1162,7 @@ ZRII0= PCORSOL*XI0
 !
 !  Performs the horizontal average of the fields when no cloud
 !
-ZCLOUD(:) = SUM( ZCFAVE(:,:),DIM=2 )
+ZCLOUD(:) = SUM( ZCFAVE(:,:),DIM=2 ) ! one where no cloud on the vertical
 !
 ! MODIF option CLLY      
 ALLOCATE ( ICLEAR_2D_TM1(KDLON) )
@@ -1241,7 +1177,7 @@ END DO
 IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
   !
   GCLEAR_2D(:) = .TRUE.
-  WHERE( (ZCLOUD(:) > 0.0) .OR. (ICLEAR_2D_TM1(:)==0) )
+  WHERE( (ZCLOUD(:) > 0.0) .OR. (ICLEAR_2D_TM1(:)==0) )  ! FALSE on cloudy columns
     GCLEAR_2D(:) = .FALSE.
   END WHERE
   !
@@ -1252,15 +1188,15 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
   IF( ICLEAR_COL == KDLON ) THEN ! No cloud case so only the mean clear-sky
     GCLEAR_2D(1) = .FALSE.       !           column is selected
     ICLEAR_COL = KDLON-1
-    GNOCL = .TRUE.
+    GNOCL = .TRUE.               ! TRUE if no cloud at all
   ELSE
     GNOCL = .FALSE.
   END IF
 
-  GCLEAR(:,:) = SPREAD( GCLEAR_2D(:),DIM=2,NCOPIES=KFLEV )
-  ICLOUD_COL = KDLON - ICLEAR_COL     ! number of  cloudy   columns
+  GCLEAR(:,:) = SPREAD( GCLEAR_2D(:),DIM=2,NCOPIES=KFLEV )  ! vertical extension of clear columns 2D map
+  ICLOUD_COL = KDLON - ICLEAR_COL                           ! number of  cloudy columns
 !
-  IF( ICLEAR_COL /=0 ) THEN ! at least one clear-sky column exists
+  IF( ICLEAR_COL /=0 ) THEN ! at least one clear-sky column exists -> average profiles on clear columns
     ZT_CLEAR(:)  = SUM( ZTAVE(:,:) ,DIM=1,MASK=GCLEAR(:,:) )/FLOAT(ICLEAR_COL)
     ZP_CLEAR(:)  = SUM( ZPAVE(:,:) ,DIM=1,MASK=GCLEAR(:,:) )/FLOAT(ICLEAR_COL)
     ZQV_CLEAR(:) = SUM( ZQVAVE(:,:),DIM=1,MASK=GCLEAR(:,:) )/FLOAT(ICLEAR_COL)
@@ -1271,7 +1207,7 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
     END DO
     !Get an average value for the clear column
     IF(CAOP=='EXPL')THEN
-       DO WVL_IDX=1,KSWB
+       DO WVL_IDX=1,KSWB_OLD
           ZPIZA_EQ_CLEAR(:,WVL_IDX) = SUM( ZPIZA_EQ(:,:,WVL_IDX), DIM=1,MASK=GCLEAR(:,:))/FLOAT(ICLEAR_COL)
           ZCGA_EQ_CLEAR(:,WVL_IDX) = SUM( ZCGA_EQ(:,:,WVL_IDX),DIM=1,MASK=GCLEAR(:,:))/FLOAT(ICLEAR_COL)
           ZTAUREL_EQ_CLEAR(:,WVL_IDX) = SUM( ZTAUREL_EQ(:,:,WVL_IDX),DIM=1,MASK=GCLEAR(:,:))/FLOAT(ICLEAR_COL)
@@ -1282,19 +1218,19 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
     ZHP_CLEAR(1:KFLEV) =SUM( ZPRES_HL(:,1:KFLEV),DIM=1,MASK=GCLEAR(:,:) )/FLOAT(ICLEAR_COL)
     ZHT_CLEAR(1:KFLEV)  = SUM( ZT_HL(:,1:KFLEV) ,DIM=1,MASK=GCLEAR(:,:) )/FLOAT(ICLEAR_COL)
     ! 
-    GCLEAR_SWB(:,:) = SPREAD(GCLEAR_2D(:),DIM=2,NCOPIES=KSWB)
+    GCLEAR_SWB(:,:) = SPREAD(GCLEAR_2D(:),DIM=2,NCOPIES=KSWB_MNH)
     ZALBP_CLEAR(:) = SUM( ZALBP(:,:),DIM=1,MASK=GCLEAR_SWB(:,:) ) &
          / FLOAT(ICLEAR_COL)
     ZALBD_CLEAR(:) = SUM( ZALBD(:,:),DIM=1,MASK=GCLEAR_SWB(:,:) ) &
          / FLOAT(ICLEAR_COL)
     !
-    ZEMIS_CLEAR  = SUM( ZEMIS(:),DIM=1,MASK=GCLEAR_2D(:)) / FLOAT(ICLEAR_COL)
-    ZEMIW_CLEAR  = SUM( ZEMIW(:),DIM=1,MASK=GCLEAR_2D(:)) / FLOAT(ICLEAR_COL)
+    ZEMIS_CLEAR  = SUM( ZEMIS(:,1),DIM=1,MASK=GCLEAR_2D(:)) / FLOAT(ICLEAR_COL)
+    ZEMIW_CLEAR  = SUM( ZEMIW(:,1),DIM=1,MASK=GCLEAR_2D(:)) / FLOAT(ICLEAR_COL)
     ZRMU0_CLEAR  = SUM( ZRMU0(:) ,DIM=1,MASK=GCLEAR_2D(:)) / FLOAT(ICLEAR_COL)
     ZTS_CLEAR    = SUM( ZTS(:) ,DIM=1,MASK=GCLEAR_2D(:)) / FLOAT(ICLEAR_COL)
     ZLSM_CLEAR   = SUM( ZLSM(:) ,DIM=1,MASK=GCLEAR_2D(:)) / FLOAT(ICLEAR_COL)  
 !
-  ELSE ! the first column is chosen, without physical meaning: it will not be
+  ELSE ! no clear columns -> the first column is chosen, without physical meaning: it will not be
     ! unpacked after the call to the radiation ecmwf routine
     ZT_CLEAR(:)  = ZTAVE(1,:)
     ZP_CLEAR(:)  = ZPAVE(1,:)
@@ -1313,8 +1249,8 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
     ZALBP_CLEAR(:) = ZALBP(1,:)
     ZALBD_CLEAR(:) = ZALBD(1,:)
 !
-    ZEMIS_CLEAR  = ZEMIS(1)
-    ZEMIW_CLEAR  = ZEMIW(1) 
+    ZEMIS_CLEAR  = ZEMIS(1,1)
+    ZEMIW_CLEAR  = ZEMIW(1,1) 
     ZRMU0_CLEAR  = ZRMU0(1)
     ZTS_CLEAR    = ZTS(1) 
     ZLSM_CLEAR   = ZLSM(1)  
@@ -1322,11 +1258,11 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
   !
   GCLOUD(:,:) = .NOT.GCLEAR(:,:) ! .true. where the column is cloudy
   GCLOUDT(:,:)=TRANSPOSE(GCLOUD(:,:))
-  ICLOUD = ICLOUD_COL*KFLEV
+  ICLOUD = ICLOUD_COL*KFLEV ! total number of voxels in cloudy columns
   ALLOCATE(ZWORK1(ICLOUD))
   ALLOCATE(ZWORK2(ICLOUD+KFLEV)) !  allocation for the KFLEV levels of 
                                  !  the ICLOUD cloudy columns
-                                 !  and of the single clear_sky one
+                                 !  and of the KFLEV levels of the clear sky one
   !
   ! temperature profiles
   !
@@ -1516,50 +1452,50 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
   DEALLOCATE (ZWORK2AER)
   !
   IF(CAOP=='EXPL')THEN
-     ALLOCATE(ZWORK1AER(ICLOUD,KSWB))        !New vector with value for all cld. points
-     ALLOCATE(ZWORK2AER(ICLOUD+KFLEV,KSWB))  !New vector with value for all cld.points + 1 clr column
+     ALLOCATE(ZWORK1AER(ICLOUD,KSWB_OLD))        !New vector with value for all cld. points
+     ALLOCATE(ZWORK2AER(ICLOUD+KFLEV,KSWB_OLD))  !New vector with value for all cld.points + 1 clr column
      !Single scattering albedo
-     DO WVL_IDX=1,KSWB
+     DO WVL_IDX=1,KSWB_OLD
         ZWORK1AER(:,WVL_IDX) = PACK( TRANSPOSE(ZPIZA_EQ(:,:,WVL_IDX)),MASK=GCLOUDT(:,:) )
         ZWORK2AER(1:ICLOUD,WVL_IDX) = ZWORK1AER(:,WVL_IDX)
         ZWORK2AER(ICLOUD+1:,WVL_IDX) = ZPIZA_EQ_CLEAR(:,WVL_IDX)
      ENDDO
      DEALLOCATE(ZPIZA_EQ)
-     ALLOCATE(ZPIZA_EQ(ICLOUD_COL+1,KFLEV,KSWB))
-     DO WVL_IDX=1,KSWB
+     ALLOCATE(ZPIZA_EQ(ICLOUD_COL+1,KFLEV,KSWB_OLD))
+     DO WVL_IDX=1,KSWB_OLD
         ZPIZA_EQ(:,:,WVL_IDX) = TRANSPOSE( RESHAPE( ZWORK2AER(:,WVL_IDX),(/KFLEV,ICLOUD_COL+1/) ) )
      ENDDO
      !Assymetry factor
-     DO WVL_IDX=1,KSWB
+     DO WVL_IDX=1,KSWB_OLD
         ZWORK1AER(:,WVL_IDX) = PACK(TRANSPOSE(ZCGA_EQ(:,:,WVL_IDX)), MASK=GCLOUDT(:,:))
         ZWORK2AER(1:ICLOUD,WVL_IDX) = ZWORK1AER(:,WVL_IDX)
         ZWORK2AER(ICLOUD+1:,WVL_IDX) = ZCGA_EQ_CLEAR(:,WVL_IDX)
      ENDDO
      DEALLOCATE(ZCGA_EQ)
-     ALLOCATE(ZCGA_EQ(ICLOUD_COL+1,KFLEV,KSWB))
-     DO WVL_IDX=1,KSWB
+     ALLOCATE(ZCGA_EQ(ICLOUD_COL+1,KFLEV,KSWB_OLD))
+     DO WVL_IDX=1,KSWB_OLD
         ZCGA_EQ(:,:,WVL_IDX) = TRANSPOSE(RESHAPE(ZWORK2AER(:,WVL_IDX),(/KFLEV,ICLOUD_COL+1/)))
      ENDDO
      !Relative wavelength-distributed optical depth
-     DO WVL_IDX=1,KSWB
+     DO WVL_IDX=1,KSWB_OLD
         ZWORK1AER(:,WVL_IDX) =  PACK(TRANSPOSE(ZTAUREL_EQ(:,:,WVL_IDX)), MASK=GCLOUDT(:,:))
         ZWORK2AER(1:ICLOUD,WVL_IDX) = ZWORK1AER(:,WVL_IDX)
         ZWORK2AER(ICLOUD+1:,WVL_IDX) = ZTAUREL_EQ_CLEAR(:,WVL_IDX)
      ENDDO
      DEALLOCATE(ZTAUREL_EQ)
-     ALLOCATE(ZTAUREL_EQ(ICLOUD_COL+1,KFLEV,KSWB))
-     DO WVL_IDX=1,KSWB
+     ALLOCATE(ZTAUREL_EQ(ICLOUD_COL+1,KFLEV,KSWB_OLD))
+     DO WVL_IDX=1,KSWB_OLD
         ZTAUREL_EQ(:,:,WVL_IDX) = TRANSPOSE(RESHAPE(ZWORK2AER(:,WVL_IDX),(/KFLEV,ICLOUD_COL+1/)))
      ENDDO
      DEALLOCATE(ZWORK1AER)
      DEALLOCATE(ZWORK2AER)
   ELSE
      DEALLOCATE(ZPIZA_EQ)
-     ALLOCATE(ZPIZA_EQ(ICLOUD_COL+1,KFLEV,KSWB))
+     ALLOCATE(ZPIZA_EQ(ICLOUD_COL+1,KFLEV,KSWB_OLD))
      DEALLOCATE(ZCGA_EQ)
-     ALLOCATE(ZCGA_EQ(ICLOUD_COL+1,KFLEV,KSWB))
+     ALLOCATE(ZCGA_EQ(ICLOUD_COL+1,KFLEV,KSWB_OLD))
      DEALLOCATE(ZTAUREL_EQ)
-     ALLOCATE(ZTAUREL_EQ(ICLOUD_COL+1,KFLEV,KSWB))
+     ALLOCATE(ZTAUREL_EQ(ICLOUD_COL+1,KFLEV,KSWB_OLD))
   ENDIF !Check on LDUST
   
   ! half-level variables
@@ -1583,42 +1519,42 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
   ! surface fields
   !
   ALLOCATE(ZWORK3(ICLOUD_COL))
-  ALLOCATE(ZWORK4(ICLOUD_COL,KSWB))
+  ALLOCATE(ZWORK4(ICLOUD_COL,KSWB_MNH))
   ALLOCATE(ZWORK(KDLON))
-  DO JALBS=1,KSWB
+  DO JALBS=1,KSWB_MNH
     ZWORK(:)  = ZALBP(:,JALBS)
     ZWORK3(:) = PACK( ZWORK(:),MASK=.NOT.GCLEAR_2D(:) )
     ZWORK4(:,JALBS) = ZWORK3(:)
   END DO
   DEALLOCATE(ZALBP)
-  ALLOCATE(ZALBP(ICLOUD_COL+1,KSWB))
+  ALLOCATE(ZALBP(ICLOUD_COL+1,KSWB_MNH))
   ZALBP(1:ICLOUD_COL,:) = ZWORK4(1:ICLOUD_COL,:)
   ZALBP(ICLOUD_COL+1,:) = ZALBP_CLEAR(:)
   !
-  DO JALBS=1,KSWB
+  DO JALBS=1,KSWB_MNH
     ZWORK(:)  = ZALBD(:,JALBS)
     ZWORK3(:) = PACK( ZWORK(:),MASK=.NOT.GCLEAR_2D(:) )
     ZWORK4(:,JALBS) = ZWORK3(:)
   END DO
   DEALLOCATE(ZALBD)
-  ALLOCATE(ZALBD(ICLOUD_COL+1,KSWB))
+  ALLOCATE(ZALBD(ICLOUD_COL+1,KSWB_MNH))
   ZALBD(1:ICLOUD_COL,:) = ZWORK4(1:ICLOUD_COL,:)  
   ZALBD(ICLOUD_COL+1,:) = ZALBD_CLEAR(:)  
   !
   DEALLOCATE(ZWORK4)
   !
-  ZWORK3(:) = PACK( ZEMIS(:),MASK=.NOT.GCLEAR_2D(:) )
+  ZWORK3(:) = PACK( ZEMIS(:,1),MASK=.NOT.GCLEAR_2D(:) )
   DEALLOCATE(ZEMIS)
-  ALLOCATE(ZEMIS(ICLOUD_COL+1))
-  ZEMIS(1:ICLOUD_COL) = ZWORK3(1:ICLOUD_COL)
-  ZEMIS(ICLOUD_COL+1) = ZEMIS_CLEAR
+  ALLOCATE(ZEMIS(ICLOUD_COL+1,1))
+  ZEMIS(1:ICLOUD_COL,1) = ZWORK3(1:ICLOUD_COL)
+  ZEMIS(ICLOUD_COL+1,1) = ZEMIS_CLEAR
   !
   !
-  ZWORK3(:) = PACK( ZEMIW(:),MASK=.NOT.GCLEAR_2D(:) )
+  ZWORK3(:) = PACK( ZEMIW(:,1),MASK=.NOT.GCLEAR_2D(:) )
   DEALLOCATE(ZEMIW)
-  ALLOCATE(ZEMIW(ICLOUD_COL+1))
-  ZEMIW(1:ICLOUD_COL) = ZWORK3(1:ICLOUD_COL)
-  ZEMIW(ICLOUD_COL+1) = ZEMIW_CLEAR
+  ALLOCATE(ZEMIW(ICLOUD_COL+1,1))
+  ZEMIW(1:ICLOUD_COL,1) = ZWORK3(1:ICLOUD_COL)
+  ZEMIW(ICLOUD_COL+1,1) = ZEMIW_CLEAR
   ! 
   !
   ZWORK3(:) = PACK( ZRMU0(:),MASK=.NOT.GCLEAR_2D(:) )
@@ -1644,9 +1580,9 @@ IF(OCLOUD_ONLY .OR. OCLEAR_SKY) THEN
   DEALLOCATE(ZWORK3)
   DEALLOCATE(ZWORK)
   !  
-  IDIM = ICLOUD_COL +1
+  IDIM = ICLOUD_COL +1 ! Number of columns where RT is computed 
 !
-ELSE
+ELSE 
   !
   !*       5.3   RADIATION COMPUTATIONS FOR THE FULL COLUMN NUMBER (KDLON)
   !
@@ -1654,6 +1590,7 @@ ELSE
 END IF
 !
 ! initialisation of cloud trace for the next radiation time step
+! (if unchanged columns are not recomputed)
 WHERE ( ZCLOUD(:) <= 0.0 )
   ICLEAR_2D_TM1(:) = 1
 ELSEWHERE
@@ -1663,7 +1600,7 @@ END WHERE
 DO JJ=IJB,IJE
   DO JI=IIB,IIE
     IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
-    KCLEARCOL_TM1(JI,JJ) = ICLEAR_2D_TM1(IIJ)
+    KCLEARCOL_TM1(JI,JJ) = ICLEAR_2D_TM1(IIJ) ! output to be saved for next time step
   END DO
 END DO
 ! 
@@ -1845,7 +1782,7 @@ END DO
 IF (CAOP=='EXPL') THEN
 !TURN MORE FIELDS UPSIDE DOWN...
 !Dust single scattering albedo
-DO JI=1,KSWB
+DO JI=1,KSWB_OLD
    ZWORK_GRID(:,:)=ZPIZA_EQ(:,:,JI)
    DO JKRAD=1,KFLEV
       JK1=KFLEV+1-JKRAD
@@ -1853,14 +1790,14 @@ DO JI=1,KSWB
    ENDDO
 ENDDO
 !Dust asymmetry factor
-DO JI=1,KSWB
+DO JI=1,KSWB_OLD
    ZWORK_GRID(:,:)=ZCGA_EQ(:,:,JI)
    DO JKRAD=1,KFLEV
       JK1=KFLEV+1-JKRAD
       ZCGA_EQ(:,JKRAD,JI)=ZWORK_GRID(:,JK1)
    ENDDO
 ENDDO
-DO JI=1,KSWB
+DO JI=1,KSWB_OLD
    ZWORK_GRID(:,:)=ZTAUREL_EQ(:,:,JI)
    DO JKRAD=1,KFLEV
       JK1=KFLEV+1-JKRAD
@@ -1940,9 +1877,9 @@ END IF
 IF( KRAD_DIAG >= 4) THEN
   ALLOCATE(ZEFCL_RRTM(IDIM,KFLEV))
   ALLOCATE(ZCLSW_TOTAL(IDIM,KFLEV))
-  ALLOCATE(ZTAU_TOTAL(IDIM,KSWB,KFLEV))
-  ALLOCATE(ZOMEGA_TOTAL(IDIM,KSWB,KFLEV))
-  ALLOCATE(ZCG_TOTAL(IDIM,KSWB,KFLEV))
+  ALLOCATE(ZTAU_TOTAL(IDIM,KSWB_OLD,KFLEV))
+  ALLOCATE(ZOMEGA_TOTAL(IDIM,KSWB_OLD,KFLEV))
+  ALLOCATE(ZCG_TOTAL(IDIM,KSWB_OLD,KFLEV))
   ALLOCATE(ZEFCL_LWD(IDIM,KFLEV))
   ALLOCATE(ZEFCL_LWU(IDIM,KFLEV))
   ALLOCATE(ZFLWP(IDIM,KFLEV))
@@ -1963,56 +1900,119 @@ END IF
 !
 !*       5.6   CALLS THE ECMWF_RADIATION ROUTINES
 !
-!  mixing ratio -> specific humidity conversion
-!
+! mixing ratio -> specific humidity conversion (for ECMWF routine)
+! mixing ratio = mv/md ; specific humidity = mv/(mv+md)
 
-ZQVAVE(:,:) = ZQVAVE(:,:) / (1.+ZQVAVE(:,:))
+ZQVAVE(:,:) = ZQVAVE(:,:) / (1.+ZQVAVE(:,:)) ! Because 
+! ZAER = 1e-5*ZAER
+! ZO3AVE = 1e-5*ZO3AVE
+IF(LCARTESIAN) THEN
+  ZLAT(:) = XLAT0*(XPI/180.)
+  ZLON(:) = XLON0*(XPI/180.)
+ELSE
+  DO JJ=IJB,IJE
+    DO JI=IIB,IIE
+        IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
+        ZLAT(IIJ) =  XLAT(JI,JJ)*(XPI/180.)
+        ZLON(IIJ) =  XLON(JI,JJ)*(XPI/180.)
+    END DO
+  END DO
+END IF
+!
 !
 IF( IDIM <= KRAD_COLNBR ) THEN 
 !
-! there is less than KRAD_COLNBR verticals to be considered therefore
+! there is less than KRAD_COLNBR columns to be considered therefore
 ! no split of the arrays is performed
-!
+! Note that radiation scheme only takes scalar emissivities so only fist value of the spectral emissivity is taken
  ALLOCATE(ZTAVE_RAD(SIZE(ZTAVE,1),SIZE(ZTAVE,2)))
  ALLOCATE(ZPAVE_RAD(SIZE(ZPAVE,1),SIZE(ZPAVE,2)))
  ZTAVE_RAD = ZTAVE
  ZPAVE_RAD = ZPAVE
  IF (CCLOUD == 'LIMA') THEN
-  CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
-       ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
-       ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE_RAD,               &
-       PCCO2, ZCFAVE, ZDPRES, ZEMIS, ZEMIW, ZLSM, ZRMU0,          &
-       ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
-       ZT_HL,ZTAVE_RAD, ZTS, ZCCT_LIMA, ZCRT_LIMA, ZCIT_LIMA,         &
-       ZNFLW_CS, ZNFLW, ZNFSW_CS,ZNFSW,                           &
-       ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
-       ZSFSWDIR, ZSFSWDIF,                                        &
-       ZFLUX_SW_DOWN, ZFLUX_SW_UP, ZFLUX_LW ,                     &
-       ZDTLW_CS, ZDTSW_CS, ZFLUX_TOP_GND_IRVISNIR_CS,             &
-       ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS, ZFLUX_LW_CS,             &           
-       ZPLAN_ALB_VIS,ZPLAN_ALB_NIR, ZPLAN_TRA_VIS, ZPLAN_TRA_NIR, &
-       ZPLAN_ABS_VIS, ZPLAN_ABS_NIR,ZEFCL_LWD, ZEFCL_LWU,         &
-       ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
-       ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
-       GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ                       )
+  IF (CRAD == "ECMW") THEN
+    CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
+        ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
+        ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE_RAD,               &
+        PCCO2, ZCFAVE, ZDPRES, ZEMIS(:,1), ZEMIW(:,1), ZLSM, ZRMU0,          &
+        ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
+        ZT_HL,ZTAVE_RAD, ZTS, ZCCT_LIMA, ZCRT_LIMA, ZCIT_LIMA,         &
+        ZNFLW_CS, ZNFLW, ZNFSW_CS,ZNFSW,                           &
+        ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
+        ZSFSWDIR, ZSFSWDIF,                                        &
+        ZFLUX_SW_DOWN, ZFLUX_SW_UP, ZFLUX_LW ,                     &
+        ZDTLW_CS, ZDTSW_CS, ZFLUX_TOP_GND_IRVISNIR_CS,             &
+        ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS, ZFLUX_LW_CS,             &           
+        ZPLAN_ALB_VIS,ZPLAN_ALB_NIR, ZPLAN_TRA_VIS, ZPLAN_TRA_NIR, &
+        ZPLAN_ABS_VIS, ZPLAN_ABS_NIR,ZEFCL_LWD, ZEFCL_LWU,         &
+        ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
+        ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
+        GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ                       )
+
+        
+  ELSE IF (CRAD == "ECRA") THEN  
+    CALL ECRAD_INTERFACE  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
+        ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
+        ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE_RAD,               &
+        PCCO2, ZCFAVE, ZDPRES, ZEMIS(:,1), ZEMIW(:,1), ZLSM, ZRMU0,          &
+        ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
+        ZT_HL,ZTAVE_RAD, ZTS, ZCCT_LIMA, ZCRT_LIMA, ZCIT_LIMA,         &
+        ZNFLW, ZNFSW, ZNFLW_CS, ZNFSW_CS,                           &
+        ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
+        ZSFSWDIR, ZSFSWDIF,                                        &
+        ZFLUX_SW_DOWN, ZFLUX_SW_UP, ZFLUX_LW ,                     &
+        ZDTLW_CS, ZDTSW_CS, ZFLUX_TOP_GND_IRVISNIR_CS,             &
+        ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS, ZFLUX_LW_CS,             &           
+        ZPLAN_ALB_VIS,ZPLAN_ALB_NIR, ZPLAN_TRA_VIS, ZPLAN_TRA_NIR, &
+        ZPLAN_ABS_VIS, ZPLAN_ABS_NIR,ZEFCL_LWD, ZEFCL_LWU,         &
+        ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
+        ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
+        GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ,ZLAT,ZLON                )      
+  ENDIF      
+ 
  ELSE
-   CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
-       ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
-       ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE_RAD,               &
-       PCCO2, ZCFAVE, ZDPRES, ZEMIS, ZEMIW, ZLSM, ZRMU0,          &
-       ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
-       ZT_HL,ZTAVE_RAD, ZTS, ZCCT_C2R2, ZCRT_C2R2, ZCIT_C1R3,         &
-       ZNFLW_CS, ZNFLW, ZNFSW_CS,ZNFSW,                           &
-       ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
-       ZSFSWDIR, ZSFSWDIF,                                        &
-       ZFLUX_SW_DOWN, ZFLUX_SW_UP, ZFLUX_LW ,                     &
-       ZDTLW_CS, ZDTSW_CS, ZFLUX_TOP_GND_IRVISNIR_CS,             &
-       ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS, ZFLUX_LW_CS,             &           
-       ZPLAN_ALB_VIS,ZPLAN_ALB_NIR, ZPLAN_TRA_VIS, ZPLAN_TRA_NIR, &
-       ZPLAN_ABS_VIS, ZPLAN_ABS_NIR,ZEFCL_LWD, ZEFCL_LWU,         &
-       ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
-       ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
-       GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ                       )
+   IF (CRAD == "ECMW") THEN 
+     CALL ECMWF_RADIATION_VERS2  ( IDIM ,KFLEV, KRAD_DIAG, KAER,     &      
+        ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
+        ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE_RAD,               &
+        PCCO2, ZCFAVE, ZDPRES, ZEMIS(:,1), ZEMIW(:,1), ZLSM, ZRMU0,          &
+        ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
+        ZT_HL,ZTAVE_RAD, ZTS, ZCCT_C2R2, ZCRT_C2R2, ZCIT_C1R3,         &
+        ZNFLW_CS, ZNFLW, ZNFSW_CS,ZNFSW,                           &
+        ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
+        ZSFSWDIR, ZSFSWDIF,                                        &
+        ZFLUX_SW_DOWN, ZFLUX_SW_UP, ZFLUX_LW ,                     &
+        ZDTLW_CS, ZDTSW_CS, ZFLUX_TOP_GND_IRVISNIR_CS,             &
+        ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS, ZFLUX_LW_CS,             &           
+        ZPLAN_ALB_VIS,ZPLAN_ALB_NIR, ZPLAN_TRA_VIS, ZPLAN_TRA_NIR, &
+        ZPLAN_ABS_VIS, ZPLAN_ABS_NIR,ZEFCL_LWD, ZEFCL_LWU,         &
+        ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
+        ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
+        GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ                       )
+   
+   ELSE IF (CRAD == "ECRA") THEN 
+print*,"IDIM=",IDIM
+print*,"SHAPE(ZLON):",SHAPE(ZLON)
+     CALL ECRAD_INTERFACE  ( IDIM ,KFLEV, KRAD_DIAG, KAER,                   &      
+        ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
+        ZRII0, ZAER , ZALBD, ZALBP, ZPRES_HL, ZPAVE_RAD,               &
+        PCCO2, ZCFAVE, ZDPRES, ZEMIS(:,1), ZEMIW(:,1), ZLSM, ZRMU0,          &
+        ZO3AVE , ZQVAVE, ZQIAVE ,ZQIWC,ZQLAVE,ZQLWC, ZQSAVE, ZQRAVE,  ZQRWC,  &
+        ZT_HL,ZTAVE_RAD, ZTS, ZCCT_C2R2, ZCRT_C2R2, ZCIT_C1R3,         &
+        ZNFLW, ZNFSW, ZNFLW_CS, ZNFSW_CS,                           &
+        ZDTLW, ZDTSW, ZFLUX_TOP_GND_IRVISNIR,                      &
+        ZSFSWDIR, ZSFSWDIF,                                        &
+        ZFLUX_SW_DOWN, ZFLUX_SW_UP, ZFLUX_LW ,                     &
+        ZDTLW_CS, ZDTSW_CS, ZFLUX_TOP_GND_IRVISNIR_CS,             &
+        ZFLUX_SW_DOWN_CS, ZFLUX_SW_UP_CS, ZFLUX_LW_CS,             &           
+        ZPLAN_ALB_VIS,ZPLAN_ALB_NIR, ZPLAN_TRA_VIS, ZPLAN_TRA_NIR, &
+        ZPLAN_ABS_VIS, ZPLAN_ABS_NIR,ZEFCL_LWD, ZEFCL_LWU,         &
+        ZFLWP, ZFIWP,ZRADLP, ZRADIP,ZEFCL_RRTM,  ZCLSW_TOTAL,  ZTAU_TOTAL,  &
+        ZOMEGA_TOTAL,ZCG_TOTAL,                                    &
+        GAOP, ZPIZA_EQ,ZCGA_EQ,ZTAUREL_EQ ,ZLAT,ZLON               )
+  END IF      
+   
+   
  END IF
  DEALLOCATE(ZTAVE_RAD,ZPAVE_RAD)
 !
@@ -2027,11 +2027,13 @@ ELSE
     IDIM_EFF = MIN( IDIM_RESIDUE,KRAD_COLNBR )
     !
     IF( JI_SPLIT == 1 .OR. JI_SPLIT == INUM_CALL ) THEN       
-      ALLOCATE(  ZALBP_SPLIT(IDIM_EFF,KSWB))
-      ALLOCATE(  ZALBD_SPLIT(IDIM_EFF,KSWB))  
+      ALLOCATE(  ZALBP_SPLIT(IDIM_EFF,KSWB_MNH))
+      ALLOCATE(  ZALBD_SPLIT(IDIM_EFF,KSWB_MNH))  
       ALLOCATE(  ZEMIS_SPLIT(IDIM_EFF))
       ALLOCATE(  ZEMIW_SPLIT(IDIM_EFF))
       ALLOCATE(  ZRMU0_SPLIT(IDIM_EFF))
+      ALLOCATE(  ZLAT_SPLIT(IDIM_EFF))
+      ALLOCATE(  ZLON_SPLIT(IDIM_EFF))
       ALLOCATE(  ZCFAVE_SPLIT(IDIM_EFF,KFLEV))
       ALLOCATE(  ZO3AVE_SPLIT(IDIM_EFF,KFLEV))
       ALLOCATE(  ZT_HL_SPLIT(IDIM_EFF,KFLEV+1))
@@ -2047,9 +2049,9 @@ ELSE
       ALLOCATE(  ZTAVE_SPLIT(IDIM_EFF,KFLEV))
       ALLOCATE(  ZPAVE_SPLIT(IDIM_EFF,KFLEV))
       ALLOCATE(  ZAER_SPLIT( IDIM_EFF,KFLEV,KAER))
-      ALLOCATE( ZPIZA_EQ_SPLIT(IDIM_EFF,KFLEV,KSWB))
-      ALLOCATE( ZCGA_EQ_SPLIT(IDIM_EFF,KFLEV,KSWB))
-      ALLOCATE( ZTAUREL_EQ_SPLIT(IDIM_EFF,KFLEV,KSWB))
+      ALLOCATE(  ZPIZA_EQ_SPLIT(IDIM_EFF,KFLEV,KSWB_OLD))
+      ALLOCATE(  ZCGA_EQ_SPLIT(IDIM_EFF,KFLEV,KSWB_OLD))
+      ALLOCATE(  ZTAUREL_EQ_SPLIT(IDIM_EFF,KFLEV,KSWB_OLD))
       ALLOCATE(  ZDPRES_SPLIT(IDIM_EFF,KFLEV))
       ALLOCATE(  ZLSM_SPLIT(IDIM_EFF))
       ALLOCATE(  ZQSAVE_SPLIT(IDIM_EFF,KFLEV))
@@ -2109,9 +2111,9 @@ ELSE
       IF( KRAD_DIAG >= 4) THEN
         ALLOCATE(  ZEFCL_RRTM_SPLIT(IDIM_EFF,KFLEV))
         ALLOCATE(  ZCLSW_TOTAL_SPLIT(IDIM_EFF,KFLEV))
-        ALLOCATE(  ZTAU_TOTAL_SPLIT(IDIM_EFF,KSWB,KFLEV))
-        ALLOCATE(  ZOMEGA_TOTAL_SPLIT(IDIM_EFF,KSWB,KFLEV))
-        ALLOCATE(  ZCG_TOTAL_SPLIT(IDIM_EFF,KSWB,KFLEV))
+        ALLOCATE(  ZTAU_TOTAL_SPLIT(IDIM_EFF,KSWB_OLD,KFLEV))
+        ALLOCATE(  ZOMEGA_TOTAL_SPLIT(IDIM_EFF,KSWB_OLD,KFLEV))
+        ALLOCATE(  ZCG_TOTAL_SPLIT(IDIM_EFF,KSWB_OLD,KFLEV))
         ALLOCATE(  ZEFCL_LWD_SPLIT(IDIM_EFF,KFLEV))
         ALLOCATE(  ZEFCL_LWU_SPLIT(IDIM_EFF,KFLEV))
         ALLOCATE(  ZFLWP_SPLIT(IDIM_EFF,KFLEV))
@@ -2166,9 +2168,11 @@ ELSE
 !
     ZALBP_SPLIT(:,:) = ZALBP( IBEG:IEND ,:)
     ZALBD_SPLIT(:,:) = ZALBD( IBEG:IEND ,:)
-    ZEMIS_SPLIT(:) = ZEMIS ( IBEG:IEND )
-    ZEMIW_SPLIT(:) = ZEMIW ( IBEG:IEND )
+    ZEMIS_SPLIT(:) = ZEMIS ( IBEG:IEND,1 )
+    ZEMIW_SPLIT(:) = ZEMIW ( IBEG:IEND,1 )
     ZRMU0_SPLIT(:)    = ZRMU0 ( IBEG:IEND )
+    ZLAT_SPLIT(:)    = ZLAT ( IBEG:IEND )
+    ZLON_SPLIT(:)    = ZLON ( IBEG:IEND )
     ZCFAVE_SPLIT(:,:) = ZCFAVE( IBEG:IEND ,:)
     ZO3AVE_SPLIT(:,:) = ZO3AVE( IBEG:IEND ,:)
     ZT_HL_SPLIT(:,:)    = ZT_HL( IBEG:IEND ,:)
@@ -2201,51 +2205,101 @@ ELSE
      ZCCT_LIMA_SPLIT(:,:) = ZCCT_LIMA (IBEG:IEND ,:)
      ZCRT_LIMA_SPLIT(:,:) = ZCRT_LIMA (IBEG:IEND ,:)
      ZCIT_LIMA_SPLIT(:,:) = ZCIT_LIMA (IBEG:IEND ,:)
-!
-   CALL ECMWF_RADIATION_VERS2  ( IDIM_EFF , KFLEV, KRAD_DIAG, KAER,               &
-         ZDZ_SPLIT,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,          &
-         ZRII0, ZAER_SPLIT , ZALBD_SPLIT, ZALBP_SPLIT, ZPRES_HL_SPLIT,            &
-         ZPAVE_SPLIT,PCCO2, ZCFAVE_SPLIT, ZDPRES_SPLIT, ZEMIS_SPLIT, ZEMIW_SPLIT, &
-         ZLSM_SPLIT, ZRMU0_SPLIT,ZO3AVE_SPLIT , ZQVAVE_SPLIT, ZQIAVE_SPLIT ,ZQIWC_SPLIT,      &
-         ZQLAVE_SPLIT,ZQLWC_SPLIT,ZQSAVE_SPLIT, ZQRAVE_SPLIT,ZQRWC_SPLIT,  ZT_HL_SPLIT,      &
-         ZTAVE_SPLIT, ZTS_SPLIT, ZCCT_LIMA_SPLIT,ZCRT_LIMA_SPLIT,ZCIT_LIMA_SPLIT, &
-         ZNFLW_CS_SPLIT, ZNFLW_SPLIT, ZNFSW_CS_SPLIT,ZNFSW_SPLIT,                 &
-         ZDTLW_SPLIT, ZDTSW_SPLIT, ZFLUX_TOP_GND_IRVISNIR_SPLIT,                  &
-         ZSFSWDIR_SPLIT, ZSFSWDIF_SPLIT,                                          &
-         ZFLUX_SW_DOWN_SPLIT, ZFLUX_SW_UP_SPLIT, ZFLUX_LW_SPLIT ,                 &
-         ZDTLW_CS_SPLIT, ZDTSW_CS_SPLIT, ZFLUX_TOP_GND_IRVISNIR_CS_SPLIT,         &
-         ZFLUX_SW_DOWN_CS_SPLIT, ZFLUX_SW_UP_CS_SPLIT, ZFLUX_LW_CS_SPLIT,         &
-         ZPLAN_ALB_VIS_SPLIT,ZPLAN_ALB_NIR_SPLIT, ZPLAN_TRA_VIS_SPLIT,            &
-         ZPLAN_TRA_NIR_SPLIT, ZPLAN_ABS_VIS_SPLIT, ZPLAN_ABS_NIR_SPLIT,           &
-         ZEFCL_LWD_SPLIT, ZEFCL_LWU_SPLIT, ZFLWP_SPLIT,ZFIWP_SPLIT,               &
-         ZRADLP_SPLIT,ZRADIP_SPLIT,ZEFCL_RRTM_SPLIT, ZCLSW_TOTAL_SPLIT,           &
-         ZTAU_TOTAL_SPLIT,ZOMEGA_TOTAL_SPLIT, ZCG_TOTAL_SPLIT,                    &
-         GAOP,ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT  )
+     
+   IF (CRAD == "ECMW") THEN  
+!
+        CALL ECMWF_RADIATION_VERS2  ( IDIM_EFF , KFLEV, KRAD_DIAG, KAER,               &
+                ZDZ_SPLIT,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,          &
+                ZRII0, ZAER_SPLIT , ZALBD_SPLIT, ZALBP_SPLIT, ZPRES_HL_SPLIT,            &
+                ZPAVE_SPLIT,PCCO2, ZCFAVE_SPLIT, ZDPRES_SPLIT, ZEMIS_SPLIT, ZEMIW_SPLIT, &
+                ZLSM_SPLIT, ZRMU0_SPLIT,ZO3AVE_SPLIT , ZQVAVE_SPLIT, ZQIAVE_SPLIT ,ZQIWC_SPLIT,      &
+                ZQLAVE_SPLIT,ZQLWC_SPLIT,ZQSAVE_SPLIT, ZQRAVE_SPLIT,ZQRWC_SPLIT,  ZT_HL_SPLIT,      &
+                ZTAVE_SPLIT, ZTS_SPLIT, ZCCT_LIMA_SPLIT,ZCRT_LIMA_SPLIT,ZCIT_LIMA_SPLIT, &
+                ZNFLW_CS_SPLIT, ZNFLW_SPLIT, ZNFSW_CS_SPLIT,ZNFSW_SPLIT,                 &
+                ZDTLW_SPLIT, ZDTSW_SPLIT, ZFLUX_TOP_GND_IRVISNIR_SPLIT,                  &
+                ZSFSWDIR_SPLIT, ZSFSWDIF_SPLIT,                                          &
+                ZFLUX_SW_DOWN_SPLIT, ZFLUX_SW_UP_SPLIT, ZFLUX_LW_SPLIT ,                 &
+                ZDTLW_CS_SPLIT, ZDTSW_CS_SPLIT, ZFLUX_TOP_GND_IRVISNIR_CS_SPLIT,         &
+                ZFLUX_SW_DOWN_CS_SPLIT, ZFLUX_SW_UP_CS_SPLIT, ZFLUX_LW_CS_SPLIT,         &
+                ZPLAN_ALB_VIS_SPLIT,ZPLAN_ALB_NIR_SPLIT, ZPLAN_TRA_VIS_SPLIT,            &
+                ZPLAN_TRA_NIR_SPLIT, ZPLAN_ABS_VIS_SPLIT, ZPLAN_ABS_NIR_SPLIT,           &
+                ZEFCL_LWD_SPLIT, ZEFCL_LWU_SPLIT, ZFLWP_SPLIT,ZFIWP_SPLIT,               &
+                ZRADLP_SPLIT,ZRADIP_SPLIT,ZEFCL_RRTM_SPLIT, ZCLSW_TOTAL_SPLIT,           &
+                ZTAU_TOTAL_SPLIT,ZOMEGA_TOTAL_SPLIT, ZCG_TOTAL_SPLIT,                    &
+                GAOP,ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT  )
+                
+   ELSE IF (CRAD == "ECRA") THEN  
+        CALL ECRAD_INTERFACE  ( IDIM_EFF ,KFLEV, KRAD_DIAG, KAER,                   &      
+            ZDZ,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
+            ZRII0, ZAER_SPLIT , ZALBD_SPLIT, ZALBP_SPLIT, ZPRES_HL_SPLIT, ZPAVE_SPLIT,               &
+            PCCO2, ZCFAVE_SPLIT, ZDPRES_SPLIT, ZEMIS_SPLIT, ZEMIW_SPLIT, ZLSM_SPLIT, ZRMU0_SPLIT,          &
+            ZO3AVE_SPLIT , ZQVAVE_SPLIT, ZQIAVE_SPLIT ,ZQIWC_SPLIT,ZQLAVE_SPLIT,ZQLWC_SPLIT, &
+            ZQSAVE_SPLIT, ZQRAVE_SPLIT,  ZQRWC_SPLIT,  &
+            ZT_HL_SPLIT,ZTAVE_SPLIT, ZTS_SPLIT, ZCCT_LIMA_SPLIT, &
+            ZCRT_LIMA_SPLIT, ZCIT_LIMA_SPLIT,         &
+            ZNFLW_SPLIT, ZNFSW_SPLIT, ZNFLW_CS_SPLIT, ZNFSW_CS_SPLIT,                           &
+            ZDTLW_SPLIT, ZDTSW_SPLIT, ZFLUX_TOP_GND_IRVISNIR_SPLIT,                      &
+            ZSFSWDIR_SPLIT, ZSFSWDIF_SPLIT,                                        &
+            ZFLUX_SW_DOWN_SPLIT, ZFLUX_SW_UP_SPLIT, ZFLUX_LW_SPLIT ,                     &
+            ZDTLW_CS_SPLIT, ZDTSW_CS_SPLIT, ZFLUX_TOP_GND_IRVISNIR_CS_SPLIT,             &
+            ZFLUX_SW_DOWN_CS_SPLIT, ZFLUX_SW_UP_CS_SPLIT, ZFLUX_LW_CS_SPLIT,             &           
+            ZPLAN_ALB_VIS_SPLIT,ZPLAN_ALB_NIR_SPLIT, ZPLAN_TRA_VIS_SPLIT, ZPLAN_TRA_NIR_SPLIT, &
+            ZPLAN_ABS_VIS_SPLIT, ZPLAN_ABS_NIR_SPLIT,ZEFCL_LWD_SPLIT, ZEFCL_LWU_SPLIT,         &
+            ZFLWP_SPLIT, ZFIWP_SPLIT,ZRADLP_SPLIT, ZRADIP_SPLIT, &
+            ZEFCL_RRTM_SPLIT,  ZCLSW_TOTAL_SPLIT,  ZTAU_TOTAL_SPLIT,  &
+            ZOMEGA_TOTAL_SPLIT,ZCG_TOTAL_SPLIT,                                    &
+            GAOP, ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT,ZLAT_SPLIT,ZLON_SPLIT    )
+  END IF              
   ELSE
 ! C2R2 concentrations
     IF (SIZE (ZCCT_C2R2) > 0)  ZCCT_C2R2_SPLIT(:,:) = ZCCT_C2R2 (IBEG:IEND ,:)
     IF (SIZE (ZCRT_C2R2) > 0)  ZCRT_C2R2_SPLIT(:,:) = ZCRT_C2R2 (IBEG:IEND ,:)  
     IF (SIZE (ZCIT_C1R3) > 0)  ZCIT_C1R3_SPLIT(:,:) = ZCIT_C1R3 (IBEG:IEND ,:)
-!
-   CALL ECMWF_RADIATION_VERS2  ( IDIM_EFF , KFLEV, KRAD_DIAG, KAER,              &    
-         ZDZ_SPLIT,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,                    &
-         ZRII0, ZAER_SPLIT , ZALBD_SPLIT, ZALBP_SPLIT, ZPRES_HL_SPLIT,            &
-         ZPAVE_SPLIT,PCCO2, ZCFAVE_SPLIT, ZDPRES_SPLIT, ZEMIS_SPLIT, ZEMIW_SPLIT, &
-         ZLSM_SPLIT, ZRMU0_SPLIT,ZO3AVE_SPLIT , ZQVAVE_SPLIT, ZQIAVE_SPLIT ,ZQIWC_SPLIT,      & 
-         ZQLAVE_SPLIT,ZQLWC_SPLIT,ZQSAVE_SPLIT, ZQRAVE_SPLIT,ZQRWC_SPLIT,  ZT_HL_SPLIT,      &
-         ZTAVE_SPLIT, ZTS_SPLIT, ZCCT_C2R2_SPLIT,ZCRT_C2R2_SPLIT,ZCIT_C1R3_SPLIT, & 
-         ZNFLW_CS_SPLIT, ZNFLW_SPLIT, ZNFSW_CS_SPLIT,ZNFSW_SPLIT,                 &          
-         ZDTLW_SPLIT, ZDTSW_SPLIT, ZFLUX_TOP_GND_IRVISNIR_SPLIT,                  &
-         ZSFSWDIR_SPLIT, ZSFSWDIF_SPLIT,                                          &
-         ZFLUX_SW_DOWN_SPLIT, ZFLUX_SW_UP_SPLIT, ZFLUX_LW_SPLIT ,                 &
-         ZDTLW_CS_SPLIT, ZDTSW_CS_SPLIT, ZFLUX_TOP_GND_IRVISNIR_CS_SPLIT,         &
-         ZFLUX_SW_DOWN_CS_SPLIT, ZFLUX_SW_UP_CS_SPLIT, ZFLUX_LW_CS_SPLIT,         & 
-         ZPLAN_ALB_VIS_SPLIT,ZPLAN_ALB_NIR_SPLIT, ZPLAN_TRA_VIS_SPLIT,            &
-         ZPLAN_TRA_NIR_SPLIT, ZPLAN_ABS_VIS_SPLIT, ZPLAN_ABS_NIR_SPLIT,           &
-         ZEFCL_LWD_SPLIT, ZEFCL_LWU_SPLIT, ZFLWP_SPLIT,ZFIWP_SPLIT,               &
-         ZRADLP_SPLIT,ZRADIP_SPLIT,ZEFCL_RRTM_SPLIT, ZCLSW_TOTAL_SPLIT,           &
-         ZTAU_TOTAL_SPLIT,ZOMEGA_TOTAL_SPLIT, ZCG_TOTAL_SPLIT,                    &
-         GAOP,ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT  )
+    IF (CRAD == "ECMW") THEN   
+        CALL ECMWF_RADIATION_VERS2  ( IDIM_EFF , KFLEV, KRAD_DIAG, KAER,              &    
+                ZDZ_SPLIT,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,                    &
+                ZRII0, ZAER_SPLIT , ZALBD_SPLIT, ZALBP_SPLIT, ZPRES_HL_SPLIT,            &
+                ZPAVE_SPLIT,PCCO2, ZCFAVE_SPLIT, ZDPRES_SPLIT, ZEMIS_SPLIT, ZEMIW_SPLIT, &
+                ZLSM_SPLIT, ZRMU0_SPLIT,ZO3AVE_SPLIT , ZQVAVE_SPLIT, ZQIAVE_SPLIT ,ZQIWC_SPLIT,      & 
+                ZQLAVE_SPLIT,ZQLWC_SPLIT,ZQSAVE_SPLIT, ZQRAVE_SPLIT,ZQRWC_SPLIT,  ZT_HL_SPLIT,      &
+                ZTAVE_SPLIT, ZTS_SPLIT, ZCCT_C2R2_SPLIT,ZCRT_C2R2_SPLIT,ZCIT_C1R3_SPLIT, & 
+                ZNFLW_CS_SPLIT, ZNFLW_SPLIT, ZNFSW_CS_SPLIT,ZNFSW_SPLIT,                 &          
+                ZDTLW_SPLIT, ZDTSW_SPLIT, ZFLUX_TOP_GND_IRVISNIR_SPLIT,                  &
+                ZSFSWDIR_SPLIT, ZSFSWDIF_SPLIT,                                          &
+                ZFLUX_SW_DOWN_SPLIT, ZFLUX_SW_UP_SPLIT, ZFLUX_LW_SPLIT ,                 &
+                ZDTLW_CS_SPLIT, ZDTSW_CS_SPLIT, ZFLUX_TOP_GND_IRVISNIR_CS_SPLIT,         &
+                ZFLUX_SW_DOWN_CS_SPLIT, ZFLUX_SW_UP_CS_SPLIT, ZFLUX_LW_CS_SPLIT,         & 
+                ZPLAN_ALB_VIS_SPLIT,ZPLAN_ALB_NIR_SPLIT, ZPLAN_TRA_VIS_SPLIT,            &
+                ZPLAN_TRA_NIR_SPLIT, ZPLAN_ABS_VIS_SPLIT, ZPLAN_ABS_NIR_SPLIT,           &
+                ZEFCL_LWD_SPLIT, ZEFCL_LWU_SPLIT, ZFLWP_SPLIT,ZFIWP_SPLIT,               &
+                ZRADLP_SPLIT,ZRADIP_SPLIT,ZEFCL_RRTM_SPLIT, ZCLSW_TOTAL_SPLIT,           &
+                ZTAU_TOTAL_SPLIT,ZOMEGA_TOTAL_SPLIT, ZCG_TOTAL_SPLIT,                    &
+                GAOP,ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT  )
+         
+    ELSE IF (CRAD == "ECRA") THEN  
+ print*,"IDIM_EFF=",IDIM_EFF
+print*,"SHAPE(ZLON_SPLIT):",SHAPE(ZLON_SPLIT)
+       CALL ECRAD_INTERFACE  ( IDIM_EFF ,KFLEV, KRAD_DIAG, KAER,                   &      
+            ZDZ_SPLIT,HEFRADL,HEFRADI,HOPWSW, HOPISW, HOPWLW, HOPILW,PFUDG,      &
+            ZRII0, ZAER_SPLIT , ZALBD_SPLIT, ZALBP_SPLIT, ZPRES_HL_SPLIT, ZPAVE_SPLIT,               &
+            PCCO2, ZCFAVE_SPLIT, ZDPRES_SPLIT, ZEMIS_SPLIT, ZEMIW_SPLIT, ZLSM_SPLIT, ZRMU0_SPLIT,          &
+            ZO3AVE_SPLIT , ZQVAVE_SPLIT, ZQIAVE_SPLIT ,ZQIWC_SPLIT,ZQLAVE_SPLIT,ZQLWC_SPLIT, &
+            ZQSAVE_SPLIT, ZQRAVE_SPLIT,  ZQRWC_SPLIT,  &
+            ZT_HL_SPLIT,ZTAVE_SPLIT, ZTS_SPLIT, ZCCT_C2R2_SPLIT, &
+            ZCRT_C2R2_SPLIT, ZCIT_C1R3_SPLIT,         &
+            ZNFLW_SPLIT, ZNFSW_SPLIT, ZNFLW_CS_SPLIT, ZNFSW_CS_SPLIT,                           &
+            ZDTLW_SPLIT, ZDTSW_SPLIT, ZFLUX_TOP_GND_IRVISNIR_SPLIT,                      &
+            ZSFSWDIR_SPLIT, ZSFSWDIF_SPLIT,                                        &
+            ZFLUX_SW_DOWN_SPLIT, ZFLUX_SW_UP_SPLIT, ZFLUX_LW_SPLIT ,                     &
+            ZDTLW_CS_SPLIT, ZDTSW_CS_SPLIT, ZFLUX_TOP_GND_IRVISNIR_CS_SPLIT,             &
+            ZFLUX_SW_DOWN_CS_SPLIT, ZFLUX_SW_UP_CS_SPLIT, ZFLUX_LW_CS_SPLIT,             &           
+            ZPLAN_ALB_VIS_SPLIT,ZPLAN_ALB_NIR_SPLIT, ZPLAN_TRA_VIS_SPLIT, ZPLAN_TRA_NIR_SPLIT, &
+            ZPLAN_ABS_VIS_SPLIT, ZPLAN_ABS_NIR_SPLIT,ZEFCL_LWD_SPLIT, ZEFCL_LWU_SPLIT,         &
+            ZFLWP_SPLIT, ZFIWP_SPLIT,ZRADLP_SPLIT, ZRADIP_SPLIT, &
+            ZEFCL_RRTM_SPLIT,  ZCLSW_TOTAL_SPLIT,  ZTAU_TOTAL_SPLIT,  &
+            ZOMEGA_TOTAL_SPLIT,ZCG_TOTAL_SPLIT,                                    &
+            GAOP, ZPIZA_EQ_SPLIT,ZCGA_EQ_SPLIT,ZTAUREL_EQ_SPLIT,ZLAT_SPLIT,ZLON_SPLIT    )
+    END IF                   
     END IF 
 !
 ! fill the full output arrays with the splitted arrays
@@ -2307,6 +2361,8 @@ ELSE
       DEALLOCATE(  ZALBD_SPLIT )  
       DEALLOCATE(  ZEMIS_SPLIT  )
       DEALLOCATE(  ZEMIW_SPLIT  )
+      DEALLOCATE(  ZLAT_SPLIT  )
+      DEALLOCATE(  ZLON_SPLIT  )
       DEALLOCATE(  ZRMU0_SPLIT      )
       DEALLOCATE(  ZCFAVE_SPLIT     )
       DEALLOCATE(  ZO3AVE_SPLIT     )
@@ -2396,6 +2452,8 @@ DEALLOCATE(ZDPRES)
 DEALLOCATE(ZCCT_C2R2)
 DEALLOCATE(ZCRT_C2R2)
 DEALLOCATE(ZCIT_C1R3)
+DEALLOCATE(ZLAT)
+DEALLOCATE(ZLON)
 IF (CCLOUD == 'LIMA') THEN 
   DEALLOCATE(ZCCT_LIMA)
   DEALLOCATE(ZCRT_LIMA)
@@ -2496,13 +2554,13 @@ DEALLOCATE(ZDTSW)
 DEALLOCATE(ZSFSWDIR)
 DEALLOCATE(ZSFSWDIF)
 !
-!-------------------------------------------------------------------------------
+!--------------------------------------------------------------------------------------------
 !
-!*       6.    COMPUTES THE RADIATIVE SOURCES AND THE DOWNWARD SURFACE FLUXES
-!              --------------------------------------------------------------
+!*       6.    COMPUTES THE RADIATIVE SOURCES AND THE DOWNWARD SURFACE FLUXES in 2D horizontal 
+!              ------------------------------------------------------------------------------
 !
 !  Computes the SW and LW radiative tendencies
-!  note : tendencies in K/s for MNH   
+!  note : tendencies in K/s for MNH (from K/day)
 !
 ZDTRAD_LW(:,:,:)=0.0
 ZDTRAD_SW(:,:,:)=0.0
@@ -2511,7 +2569,7 @@ DO JK=IKB,IKE
   DO JJ=IJB,IJE
     DO JI=IIB,IIE
       IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
-      ZDTRAD_LW(JI,JJ,JK) = ZZDTLW(IIJ,JKRAD)/XDAY
+      ZDTRAD_LW(JI,JJ,JK) = ZZDTLW(IIJ,JKRAD)/XDAY  ! XDAY from  modd_cst (day duration in s)
       ZDTRAD_SW(JI,JJ,JK) = ZZDTSW(IIJ,JKRAD)/XDAY      
     END DO
   END DO
@@ -2535,8 +2593,7 @@ END DO
 !final  THETA_radiative tendency and surface fluxes 
 !
 IF(OCLOUD_ONLY) THEN
-  !! Q.LIBOIS 06/2017
-  !ZWORKL(:,:) = SUM(PCLDFR(:,:,:),DIM=3) > 0.0
+
   DO JJ=IJB,IJE
     DO JI=IIB,IIE
         IIJ = 1 + (JI-IIB) + (IIE-IIB+1)*(JJ-IJB)
@@ -2544,8 +2601,8 @@ IF(OCLOUD_ONLY) THEN
     END DO
   END DO
  
-  ZWORKL(:,:) = GCLOUD_SURF(:,:) ! nouvelle condition
-  !! Q.LIBOIS 06/2017
+  ZWORKL(:,:) = GCLOUD_SURF(:,:)
+
   DO JK = IKB,IKE
     WHERE( ZWORKL(:,:) )
       PDTHRAD(:,:,JK) = (ZDTRAD_LW(:,:,JK)+ZDTRAD_SW(:,:,JK))/ZEXNT(:,:,JK)
@@ -2562,7 +2619,7 @@ IF(OCLOUD_ONLY) THEN
     END WHERE
   END DO
 ELSE
-  PDTHRAD(:,:,:) = (ZDTRAD_LW(:,:,:)+ZDTRAD_SW(:,:,:))/ZEXNT(:,:,:)
+  PDTHRAD(:,:,:) = (ZDTRAD_LW(:,:,:)+ZDTRAD_SW(:,:,:))/ZEXNT(:,:,:)  ! tendency in potential temperature
   PDTHRADSW(:,:,:) = ZDTRAD_SW(:,:,:)/ZEXNT(:,:,:)
   PDTHRADLW(:,:,:) = ZDTRAD_LW(:,:,:)/ZEXNT(:,:,:)
   PSRFLWD(:,:) = ZLWD(:,:)
@@ -2581,7 +2638,7 @@ ELSE
           PSWU(JI,JJ,JK) = ZFLUX_SW_UP(IIJ,JKRAD)
           PSWD(JI,JJ,JK) = ZFLUX_SW_DOWN(IIJ,JKRAD)
           PLWU(JI,JJ,JK) = ZFLUX_LW(IIJ,1,JKRAD)
-          PLWD(JI,JJ,JK) = -ZFLUX_LW(IIJ,2,JKRAD)
+          PLWD(JI,JJ,JK) = -ZFLUX_LW(IIJ,2,JKRAD)  ! in ECMWF all fluxes are upward
     END DO
    END DO
   END DO
@@ -3127,7 +3184,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN
     CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,YDIR,ZSTORE_3D,IGRID,ILENCH,YCOMMENT,IRESP)
     !
     ! spectral bands
-    IF (KSWB==6) THEN
+    IF (KSWB_OLD==6) THEN
       INIR = 4
     ELSE
       INIR = 2
@@ -3136,11 +3193,11 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN
     DO JBAND=1,INIR-1
       WRITE(YBAND_NAME(JBAND),'(A3,I1)') 'VIS', JBAND
     END DO
-    DO JBAND= INIR, KSWB
+    DO JBAND= INIR, KSWB_OLD
       WRITE(YBAND_NAME(JBAND),'(A3,I1)') 'NIR', JBAND
     END DO
 !
-    DO JBAND=1,KSWB
+    DO JBAND=1,KSWB_OLD
       YRECFM   = 'ODAER_'//YBAND_NAME(JBAND)
       YCOMMENT = 'X_Y_Z_OD_'//YBAND_NAME(JBAND)
       IGRID    = 1
@@ -3158,7 +3215,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN
       CALL FMWRIT(HFMFILE,YRECFM,HLUOUT,YDIR,ZCGAZ(:,:,:,JBAND),IGRID,ILENCH,YCOMMENT,IRESP)
     ENDDO
 
-    DO JBAND=1,KSWB
+    DO JBAND=1,KSWB_OLD
       DO JK=IKB,IKE
         JKRAD = JK - JPVEXT
         DO JJ=IJB,IJE
@@ -3412,4 +3469,5 @@ DEALLOCATE(ZO3AVE)
 !-------------------------------------------------------------------------------
 !
 END SUBROUTINE RADIATIONS
-
+!
+END MODULE MODI_RADIATIONS  
diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90
index c7e9cd86956f58c058226b14b1fb9e511e2b1eb2..e85e6a7bac9706adeb0c575cebb110163ecbd11e 100644
--- a/src/MNH/read_desfmn.f90
+++ b/src/MNH/read_desfmn.f90
@@ -191,6 +191,7 @@ END MODULE MODI_READ_DESFM_n
 !!      Modification   07/2013   (Bosseur & Filippi) Adds Forefire
 !!      Modification   01/2015   (C. Barthe) Add explicit LNOx
 !!      Modification   2016      (B.VIE) LIMA
+!!      Modification   02/2018   (Q.Libois) ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -207,6 +208,7 @@ USE MODN_DYN_n
 USE MODN_ADV_n
 USE MODN_PARAM_n
 USE MODN_PARAM_RAD_n
+USE MODN_PARAM_ECRAD_n
 USE MODN_PARAM_KAFR_n
 USE MODN_PARAM_MFSHALL_n
 USE MODN_PARAM_ICE, ONLY : NAM_PARAM_ICE, ZWARM=>LWARM, ZSEDIC=>LSEDIC, &
@@ -364,6 +366,14 @@ IF (GFOUND) THEN
   READ(UNIT=ILUDES,NML=NAM_PARAM_RADn)
   CALL UPDATE_NAM_PARAM_RADn
 END IF
+#ifdef MNH_ECRAD
+CALL POSNAM(ILUDES,'NAM_PARAM_ECRADN',GFOUND)
+CALL INIT_NAM_PARAM_ECRADn
+IF (GFOUND) THEN 
+  READ(UNIT=ILUDES,NML=NAM_PARAM_ECRADn)
+  CALL UPDATE_NAM_PARAM_ECRADn
+END IF
+#endif
 CALL POSNAM(ILUDES,'NAM_PARAM_KAFRN',GFOUND)
 CALL INIT_NAM_PARAM_KAFRn
 IF (GFOUND) THEN 
@@ -574,6 +584,11 @@ IF (NVERB >= 10) THEN
 !  
   WRITE(UNIT=ILUOUT,FMT="('********** RADIATIONSn *************')")
   WRITE(UNIT=ILUOUT,NML=NAM_PARAM_RADn)
+!  
+#ifdef MNH_ECRAD
+  WRITE(UNIT=ILUOUT,FMT="('********** ECRAD RADIATIONSn *************')")
+  WRITE(UNIT=ILUOUT,NML=NAM_PARAM_ECRADn)
+#endif
 !  
   WRITE(UNIT=ILUOUT,FMT="('********** DEEP CONVECTIONn ********')")
   WRITE(UNIT=ILUOUT,NML=NAM_PARAM_KAFRn)
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index ce8b4cf90f93d6921ad9f037d38b70bb11747593..547001a9dd7c0bc7a8e5ac4d92c0395ec11bac66 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -288,6 +288,7 @@ END MODULE MODI_READ_EXSEG_n
 !!                                               LUSERx-type variables for LIMA
 !!      M.Leriche      06/2017 for spawn and prep_real avoid abort if wet dep for 
 !!                             aerosol and no cloud scheme defined
+!!      Q.Libois       02/2018  ECRAD
 !!------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -317,6 +318,7 @@ USE MODN_DYN_n      ! to avoid the duplication of this routine for each model.
 USE MODN_ADV_n      ! The final filling of these modules for the model n is
 USE MODN_PARAM_n    ! realized in subroutine ini_model n
 USE MODN_PARAM_RAD_n
+USE MODN_PARAM_ECRAD_n
 USE MODN_PARAM_KAFR_n
 USE MODN_PARAM_MFSHALL_n
 USE MODN_PARAM_ICE
@@ -452,6 +454,9 @@ CALL INIT_NAM_DYNN
 CALL INIT_NAM_ADVN
 CALL INIT_NAM_PARAMN
 CALL INIT_NAM_PARAM_RADN
+#ifdef MNH_ECRAD
+CALL INIT_NAM_PARAM_ECRADN
+#endif
 CALL INIT_NAM_PARAM_KAFRN
 CALL INIT_NAM_PARAM_MFSHALLN
 CALL INIT_NAM_LBCN
@@ -474,6 +479,10 @@ CALL POSNAM(ILUSEG,'NAM_PARAMN',GFOUND,ILUOUT)
 IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PARAMn)
 CALL POSNAM(ILUSEG,'NAM_PARAM_RADN',GFOUND,ILUOUT)
 IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PARAM_RADn)
+#ifdef MNH_ECRAD
+CALL POSNAM(ILUSEG,'NAM_PARAM_ECRADN',GFOUND,ILUOUT)
+IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PARAM_ECRADn)
+#endif
 CALL POSNAM(ILUSEG,'NAM_PARAM_KAFRN',GFOUND,ILUOUT)
 IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_PARAM_KAFRn)
 CALL POSNAM(ILUSEG,'NAM_PARAM_MFSHALLN',GFOUND,ILUOUT)
@@ -597,7 +606,11 @@ CALL TEST_NAM_VAR(ILUOUT,'CTEMP_SCHEME',CTEMP_SCHEME,       &
   &'RK11','RK21','RK33','RKC4','RK53','RK4B','RK62','RK65','NP32','SP32','LEFR')
 !
 CALL TEST_NAM_VAR(ILUOUT,'CTURB',CTURB,'NONE','TKEL')
-CALL TEST_NAM_VAR(ILUOUT,'CRAD',CRAD,'NONE','FIXE','ECMW','TOPA')
+CALL TEST_NAM_VAR(ILUOUT,'CRAD',CRAD,'NONE','FIXE','ECMW',&
+#ifdef MNH_ECRAD
+                 'ECRA',&
+#endif
+                 'TOPA')
 CALL TEST_NAM_VAR(ILUOUT,'CCLOUD',CCLOUD,'NONE','REVE','KESS',  &
       & 'ICE2','ICE3','ICE4','C2R2','C3R5','KHKO','LIMA')
 CALL TEST_NAM_VAR(ILUOUT,'CDCONV',CDCONV,'NONE','KAFR')
@@ -2757,6 +2770,9 @@ CALL UPDATE_NAM_DYNN
 CALL UPDATE_NAM_ADVN
 CALL UPDATE_NAM_PARAMN
 CALL UPDATE_NAM_PARAM_RADN
+#ifdef MNH_ECRAD
+CALL UPDATE_NAM_PARAM_ECRADN
+#endif
 CALL UPDATE_NAM_PARAM_KAFRN
 CALL UPDATE_NAM_PARAM_MFSHALLN
 CALL UPDATE_NAM_LBCN
diff --git a/src/MNH/reset_exseg.f90 b/src/MNH/reset_exseg.f90
index 8c9aaeee27673f7f9e901922b994afd33158ebbf..0590c6f457d040ca302b826a996f99614323e12e 100644
--- a/src/MNH/reset_exseg.f90
+++ b/src/MNH/reset_exseg.f90
@@ -60,6 +60,7 @@ END MODULE MODI_RESET_EXSEG
 !!    -------------
 !!      Original    14/09/00
 !!      Modifications  04/06/02  (P Jabouille) reset radiation and convective options
+!!                   02/2018 Q.Libois ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -76,6 +77,7 @@ USE MODD_GET_n
 USE MODD_PARAM_n, ONLY: CDCONV, CRAD
 USE MODN_PARAM_KAFR_n
 USE MODN_PARAM_RAD_n
+USE MODN_PARAM_ECRAD_n
 !
 IMPLICIT NONE
 !
@@ -152,6 +154,15 @@ IF(NRAD_3D>=1) THEN
     CALL UPDATE_NAM_PARAM_RADn
     PRINT*, '  namelist NAM_PARAM_RADN read'
   END IF
+#ifdef MNH_ECRAD
+  CALL POSNAM(ILUNAM,'NAM_PARAM_ECRADN',GFOUND)
+  IF (GFOUND) THEN
+    CALL INIT_NAM_PARAM_EcRADn
+    READ(UNIT=ILUNAM,NML=NAM_PARAM_ECRADN)
+    CALL UPDATE_NAM_PARAM_ECRADn
+    PRINT*, '  namelist NAM_PARAM_ECRADN read'    
+  END IF
+#endif
 ENDIF
 !
 
diff --git a/src/MNH/stationn.f90 b/src/MNH/stationn.f90
index 52f102c51cf74c4d39e981c99414eb345cffeca3..f4fb1a53911c9193c6ff6f3d165509f7c8e78215 100644
--- a/src/MNH/stationn.f90
+++ b/src/MNH/stationn.f90
@@ -409,6 +409,8 @@ IF (GSTORE) THEN
           TSTATION%LEI   (IN,I) = STATION_INTERP_2D(XCURRENT_LEI   ) 
           TSTATION%GFLUX (IN,I) = STATION_INTERP_2D(XCURRENT_GFLUX ) 
           TSTATION%SW    (IN,I) = STATION_INTERP_2D(XCURRENT_SW    ) 
+          TSTATION%SWDIR (IN,I) = STATION_INTERP_2D(XCURRENT_SWDIR ) 
+          TSTATION%SWDIFF(IN,I) = STATION_INTERP_2D(XCURRENT_SWDIFF)
           TSTATION%LW    (IN,I) = STATION_INTERP_2D(XCURRENT_LW    ) 
           TSTATION%DSTAOD(IN,I) = STATION_INTERP_2D(XCURRENT_DSTAOD)
           TSTATION%SFCO2 (IN,I) = STATION_INTERP_2D(XCURRENT_SFCO2 ) 
@@ -442,6 +444,8 @@ IF (GSTORE) THEN
           TSTATION%LEI   (IN,I) = XCURRENT_LEI(TSTATION%I(I),TSTATION%J(I))
           TSTATION%GFLUX (IN,I) = XCURRENT_GFLUX(TSTATION%I(I),TSTATION%J(I))
           TSTATION%SW    (IN,I) = XCURRENT_SW(TSTATION%I(I),TSTATION%J(I))
+          TSTATION%SWDIR (IN,I) = XCURRENT_SWDIR(TSTATION%I(I),TSTATION%J(I))
+          TSTATION%SWDIFF(IN,I) = XCURRENT_SWDIFF(TSTATION%I(I),TSTATION%J(I))         
           TSTATION%LW    (IN,I) = XCURRENT_LW(TSTATION%I(I),TSTATION%J(I))
           TSTATION%DSTAOD(IN,I) = XCURRENT_DSTAOD(TSTATION%I(I),TSTATION%J(I))
           TSTATION%SFCO2 (IN,I) = XCURRENT_SFCO2(TSTATION%I(I),TSTATION%J(I))
@@ -489,6 +493,8 @@ IF (GSTORE) THEN
     CALL DISTRIBUTE_STATION(TSTATION%LEI    (IN,I))    
     CALL DISTRIBUTE_STATION(TSTATION%GFLUX  (IN,I))
     CALL DISTRIBUTE_STATION(TSTATION%SW     (IN,I))
+    CALL DISTRIBUTE_STATION(TSTATION%SWDIR  (IN,I))
+    CALL DISTRIBUTE_STATION(TSTATION%SWDIFF (IN,I))    
     CALL DISTRIBUTE_STATION(TSTATION%LW     (IN,I))
     CALL DISTRIBUTE_STATION(TSTATION%DSTAOD (IN,I))
     CALL DISTRIBUTE_STATION(TSTATION%SFCO2  (IN,I))
diff --git a/src/MNH/test_nam_var.f90 b/src/MNH/test_nam_var.f90
index c4041dfa0e5bec76f4de00fa6cd34e3f256d257e..a0906e0eb816f77867cd0db8043b3eb7d2695ee5 100644
--- a/src/MNH/test_nam_var.f90
+++ b/src/MNH/test_nam_var.f90
@@ -185,6 +185,7 @@ IF ( PRESENT (HVALUE9) ) WRITE (KLUOUT,*) '"',HVALUE9,'"'
 IF ( PRESENT (HVALUE10) ) WRITE (KLUOUT,*) '"',HVALUE10,'"'
 IF ( PRESENT (HVALUE11) ) WRITE (KLUOUT,*) '"',HVALUE11,'"'
 IF ( PRESENT (HVALUE12) ) WRITE (KLUOUT,*) '"',HVALUE12,'"'
+CALL FLUSH(KLUOUT)
 !
  !callabortstop
 CALL ABORT
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index a52794462935d8fa20f9b358d06676195ccc3b2d..8eaf17e5bc15acc1a62675a9c43f928835ea2e04 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -143,6 +143,7 @@ END MODULE MODI_WRITE_DESFM_n
 !!      Modification   P. Tulet       01/2005  add dust, orilam
 !!      Modification                  05/2006  Remove EPS and OWRIGET
 !!      Modification    01/2016  (JP Pinty) Add LIMA
+!!                   02/2018 Q.Libois ECRAD
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -163,6 +164,7 @@ USE MODN_DYN_n
 USE MODN_ADV_n
 USE MODN_PARAM_n
 USE MODN_PARAM_RAD_n
+USE MODN_PARAM_ECRAD_n
 USE MODN_PARAM_KAFR_n
 USE MODN_PARAM_MFSHALL_n
 USE MODN_PARAM_ICE
@@ -312,6 +314,10 @@ WRITE(UNIT=ILUSEG,NML=NAM_PARAMn)
 !
 CALL INIT_NAM_PARAM_RADn
 IF(CRAD /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_PARAM_RADn)
+#ifdef MNH_ECRAD
+CALL INIT_NAM_PARAM_ECRADn
+IF(CRAD /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_PARAM_ECRADn)
+#endif
 !
 CALL INIT_NAM_PARAM_KAFRn
 IF(CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') &
@@ -432,6 +438,10 @@ IF (NVERB >= 5) THEN
 !  
   WRITE(UNIT=ILUOUT,FMT="('********** RADIATIONn **************')")
   WRITE(UNIT=ILUOUT,NML=NAM_PARAM_RADn)
+#ifdef MNH_ECRAD
+  WRITE(UNIT=ILUOUT,FMT="('********** ECRADn **************')")
+  WRITE(UNIT=ILUOUT,NML=NAM_PARAM_ECRADn)
+#endif
 !  
   WRITE(UNIT=ILUOUT,FMT="('********** CONVECTIONn *************')")
   WRITE(UNIT=ILUOUT,NML=NAM_PARAM_KAFRn)
diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90
index 2a778a69bbfefe3a25189171770efd3bfae31db7..0a355b2513d59799eb7345b436474d063419fdbf 100644
--- a/src/MNH/write_lfifm1_for_diag_supp.f90
+++ b/src/MNH/write_lfifm1_for_diag_supp.f90
@@ -774,7 +774,7 @@ IF (LEN_TRIM(CRAD_SAT) /= 0 .AND. NRR /=0) THEN
     ZIRBT(:,:) = XUNDEF
     ZWVBT(:,:) = XUNDEF
     CALL RADTR_SATEL(TDTCUR%TDATE%YEAR,TDTCUR%TDATE%MONTH,TDTCUR%TDATE%DAY, &
-                     TDTCUR%TIME, NDLON, NFLEV, NSTATM, NRAD_COLNBR, XEMIS, &
+                     TDTCUR%TIME, NDLON, NFLEV, NSTATM, NRAD_COLNBR, XEMIS(:,:,1), &
                      XCCO2, XTSRAD, XSTATM, XTHT, XRT, XPABST, XZZ,         &
                      XSIGS, XMFCONV, XCLDFR, LUSERI, LSIGMAS,               &
                      LSUBG_COND, LRAD_SUBG_COND, ZIRBT, ZWVBT,              &
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index d4c07e5cdbeaec8d54da697a48119beaa19ed844..5ea945b56fb6ed9054f0751d7f3970322a830833 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -165,6 +165,7 @@ END MODULE MODI_WRITE_LFIFM_n
 !!       Modification    01/2016  (JP Pinty) Add LIMA
 !!       M.Mazoyer     04/16 : Add supersaturation fields
 !!       JP Chaboureau 27/11/2017 add wind tendency forcing
+!!                   02/2018 Q.Libois move Diagnostic related to the radiations in radiations.f90
 !!                   
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90
index 3b5a2e32e96c09fda058f1a018331711d5f7287d..d46235b743209cb7cec9e86284b734ff52c8eec6 100644
--- a/src/MNH/write_stationn.f90
+++ b/src/MNH/write_stationn.f90
@@ -153,7 +153,7 @@ IF (TSTATION%Y(II)==XUNDEF) RETURN
 IPROC = 8 + SIZE(TSTATION%R,3) + SIZE(TSTATION%SV,3) 
 
 IF (SIZE(TSTATION%TKE  )>0) IPROC = IPROC + 1
-IF (LDIAG_IN_RUN) IPROC = IPROC + 13
+IF (LDIAG_IN_RUN) IPROC = IPROC + 15
 IF (LORILAM) IPROC = IPROC + JPMODE*(3+NSOA+NCARB+NSP)
 IF (LDUST) IPROC = IPROC + NMODE_DST*3
 IF (LSALT) IPROC = IPROC + NMODE_SLT*3
@@ -284,6 +284,18 @@ IF (LDIAG_IN_RUN) THEN
   YUNIT    (JPROC) = 'W/m2'  
   YCOMMENT (JPROC) = 'Downward short-wave radiation' 
   ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%SW(:,II)
+  !
+  JPROC = JPROC + 1
+  YTITLE   (JPROC) = 'SWDIR'   
+  YUNIT    (JPROC) = 'W/m2'  
+  YCOMMENT (JPROC) = 'Downward direct short-wave radiation' 
+  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%SWDIR(:,II)
+  !
+  JPROC = JPROC + 1
+  YTITLE   (JPROC) = 'SWDIFF'   
+  YUNIT    (JPROC) = 'W/m2'  
+  YCOMMENT (JPROC) = 'Downward diffuse short-wave radiation' 
+  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%SWDIFF(:,II)  
   !       
   JPROC = JPROC + 1
   YTITLE   (JPROC) = 'LW'  
diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk
index e2a435b357c3349a979b70c448959a5b1f0c9606..541552c95d757509aa979c291bdf542f754d0e8d 100644
--- a/src/Makefile.MESONH.mk
+++ b/src/Makefile.MESONH.mk
@@ -126,6 +126,15 @@ DIR_RAD      +=  LIB/RAD/ECMWF_RAD
 #CPPFLAGS_RAD =
 INC_RAD      = -I$(B)LIB/RAD/ECMWF_RAD
 #
+ifdef MNH_ECRAD
+DIR_RAD      +=  LIB/RAD/ecrad-1.0.1_mnh
+DIR_RAD      +=  LIB/RAD/ecrad-1.0.1
+CPPFLAGS_RAD = -DMNH_ECRAD
+INC_RAD      += -I$(B)LIB/RAD/ecrad-1.0.1/include
+ARCH_XYZ    := $(ARCH_XYZ)-ECRAD
+endif
+#
+#
 ifdef DIR_RAD
 DIR_MASTER  += $(DIR_RAD)
 CPPFLAGS    += $(CPPFLAGS_RAD)
@@ -134,6 +143,16 @@ INC         += $(INC_RAD)
 IGNORE_DEP_MASTER   += olwu.D olwv.D rad1Driv_MACLATMOSPH_60LEVELS_ICRCCM3.D tstrad.D tstrad_chansubset.D tstrad_rttov7.D \
                        tstrad_sx6.D
 
+OBJS0 += spll_orrtm_kgb1.o spll_orrtm_kgb14.o spll_orrtm_kgb3_a.o spll_orrtm_kgb4_b.o \
+        spll_orrtm_kgb5_c.o spll_orrtm_kgb10.o spll_orrtm_kgb15.o spll_orrtm_kgb3_b.o \
+        spll_orrtm_kgb4_c.o spll_orrtm_kgb6.o spll_orrtm_kgb11.o spll_orrtm_kgb16.o \
+        spll_orrtm_kgb3_c.o spll_orrtm_kgb5.o spll_orrtm_kgb7.o spll_orrtm_kgb12.o \
+        spll_orrtm_kgb2.o spll_orrtm_kgb4.o spll_orrtm_kgb5_a.o spll_orrtm_kgb8.o \
+        spll_orrtm_kgb13.o spll_orrtm_kgb3.o spll_orrtm_kgb4_a.o spll_orrtm_kgb5_b.o \
+        spll_orrtm_kgb9.o spll_read_xker_raccs.o spll_read_xker_rdryg.o spll_read_xker_sdryg.o \
+        spll_suecaebc.o  spll_suecaec.o  spll_suecaeor.o  spll_suecaesd.o \
+        spll_suecaess.o  spll_suecaesu.o spll_suecozc.o  spll_suecozo.o
+ifdef MNH_ECRAD
 OBJS0 += spll_rrtm_kgb1.o spll_rrtm_kgb14.o spll_rrtm_kgb3_a.o spll_rrtm_kgb4_b.o \
         spll_rrtm_kgb5_c.o spll_rrtm_kgb10.o spll_rrtm_kgb15.o spll_rrtm_kgb3_b.o \
         spll_rrtm_kgb4_c.o spll_rrtm_kgb6.o spll_rrtm_kgb11.o spll_rrtm_kgb16.o \
@@ -143,6 +162,10 @@ OBJS0 += spll_rrtm_kgb1.o spll_rrtm_kgb14.o spll_rrtm_kgb3_a.o spll_rrtm_kgb4_b.
         spll_rrtm_kgb9.o spll_read_xker_raccs.o spll_read_xker_rdryg.o spll_read_xker_sdryg.o \
         spll_suecaebc.o  spll_suecaec.o  spll_suecaeor.o  spll_suecaesd.o \
         spll_suecaess.o  spll_suecaesu.o spll_suecozc.o  spll_suecozo.o
+IGNORE_DEP_MASTER   += rrtm_rrtm_140gp_mcica.D srtm_spcvrt_mcica.D srtm_srtm_224gp_mcica.D radiation_psrad.D \
+                       radiation_psrad_rrtm.D test_spartacus_math.D radiation_adding_ica_sw_test.D \
+                       radiation_adding_ica_sw_test2.D srtm_gas_optical_depth_test.D
+endif
 
 $(OBJS0): OPT = $(OPT0) 
 
diff --git a/src/configure b/src/configure
index 49162cd0ca3666b722453bb0eca0c5fbd8332325..49a0448850d5d78692e45e6202585b12e8c62261 100755
--- a/src/configure
+++ b/src/configure
@@ -23,6 +23,10 @@ export VERSION_OASIS=${VERSION_OASIS:-"mct_v3"}
 export VERSION_TOY=${VERSION_TOY:-"v1-0"}
 export VERSION_NCL=${VERSION_NCL:-"ncl-6.4.0"}
 
+
+export VERSION_ECRAD=${VERSION_ECRAD:-"1.0.1"}
+
+
 export LEN_HREC=${LEN_HREC:-16}
 
 #
@@ -395,7 +399,7 @@ fi
 #
 ${LOCAL}/bin/eval_dollar  profile_mesonh.ihm > profile_mesonh
 chmod +x profile_mesonh
-XYZ=${ARCH}${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL}
+XYZ=${ARCH}${MNH_REAL}I${MNH_INT}-${VERSION_XYZ}${MNH_ECRAD:+-ECRAD}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL}
 cp profile_mesonh profile_mesonh-${XYZ}
 #
 #  Do some post-install stuff