INTERFACE
SUBROUTINE RADLSW &
 & ( KIDIA, KFDIA , KLON , KLEV  , KMODE, KAER,&
 & PRII0,&
 & PAER , PALBD , PALBP, PAPH , PAP,&
 & PCCNL, PCCNO,&
 & PCCO2, PCLFR , PDP  , PEMIS, PEMIW , PLSM , PMU0, POZON,&
 & PQ   , PQIWP , PQLWP, PQS  , PQRAIN, PRAINT,&
 & PTH  , PT    , PTS  , PNBAS, PNTOP,&
 & PREF_LIQ, PREF_ICE,&
 & PEMIT, PFCT  , PFLT , PFCS , PFLS,&
 & PFRSOD,PSUDU , PUVDF, PPARF, PPARCF, PTINCF,&
 & PSFSWDIR, PSFSWDIF,PFSDNN,PFSDNV ,&  
 & LRDUST,PPIZA_DST,PCGA_DST,PTAUREL_DST,&
 & PTAU_LW,&
 & PFLUX,PFLUC,PFSDN ,PFSUP , PFSCDN , PFSCUP, &
 & PTOAB, PTOACB )  !FC

USE PARKIND1 ,ONLY : JPIM ,JPRB
USE YOERAD , ONLY : NLW, LRRTM ,LCCNL ,LCCNO, LDIFFC,&
 & NRADIP , NRADLP , NICEOPT, NLIQOPT, NINHOM ,NLAYINH ,&
 & RCCNLND, RCCNSEA, RLWINHF, RSWINHF, RRe2De ,&
 & LEDBUG 
! Temporary fix waiting for cleaner interface (or not)
USE clesphys_mod_h, ONLY: NSW
!!include "clesphys.h"
INTEGER(KIND=JPIM),INTENT(IN) :: KLON
INTEGER(KIND=JPIM),INTENT(IN) :: KLEV
INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA
INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA
INTEGER(KIND=JPIM),INTENT(IN) :: KMODE
INTEGER(KIND=JPIM),INTENT(IN) :: KAER
REAL(KIND=JPRB) ,INTENT(IN) :: PRII0
REAL(KIND=JPRB) ,INTENT(IN) :: PAER(KLON,6,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PALBD(KLON,NSW)
REAL(KIND=JPRB) ,INTENT(IN) :: PALBP(KLON,NSW)
REAL(KIND=JPRB) ,INTENT(IN) :: PAPH(KLON,KLEV+1)
REAL(KIND=JPRB) ,INTENT(IN) :: PAP(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PCCNL(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PCCNO(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PCCO2
REAL(KIND=JPRB) ,INTENT(IN) :: PCLFR(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PDP(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PEMIS(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PEMIW(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PLSM(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PMU0(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: POZON(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PQ(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PQIWP(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PQLWP(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PQS(KLON,KLEV)
REAL(KIND=JPRB) :: PQRAIN(KLON,KLEV)
REAL(KIND=JPRB) :: PRAINT(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PTH(KLON,KLEV+1)
REAL(KIND=JPRB) ,INTENT(IN) :: PT(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PTS(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PNBAS(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PNTOP(KLON)
REAL(KIND=JPRB) ,INTENT(IN) :: PREF_LIQ(KLON,KLEV)
REAL(KIND=JPRB) ,INTENT(IN) :: PREF_ICE(KLON,KLEV)
LOGICAL ,INTENT(IN) :: LRDUST
REAL(KIND=JPRB) ,INTENT(IN) :: PPIZA_DST(KLON,KLEV,NSW)
REAL(KIND=JPRB) ,INTENT(IN) :: PCGA_DST(KLON,KLEV,NSW)
REAL(KIND=JPRB) ,INTENT(IN) :: PTAUREL_DST(KLON,KLEV,NSW)
!--C.Kleinschmitt
REAL(KIND=JPRB)   ,INTENT(IN)    :: PTAU_LW(KLON,KLEV,NLW)
!--end
REAL(KIND=JPRB) ,INTENT(OUT) :: PEMIT(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFCT(KLON,KLEV+1)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFLT(KLON,KLEV+1)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFCS(KLON,KLEV+1)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFLS(KLON,KLEV+1)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFRSOD(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PSUDU(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PUVDF(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PPARF(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PPARCF(KLON), PTINCF(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PSFSWDIR(KLON,NSW)
REAL(KIND=JPRB) ,INTENT(OUT) :: PSFSWDIF(KLON,NSW)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFSDNN(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFSDNV(KLON)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFLUX(KLON,2,KLEV+1) ! LW total sky flux (1=up, 2=down)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFLUC(KLON,2,KLEV+1) ! LW clear sky flux (1=up, 2=down)
REAL(KIND=JPRB) ,INTENT(OUT) :: PFSDN(KLON,KLEV+1)   ! SW total sky flux down
REAL(KIND=JPRB) ,INTENT(OUT) :: PFSUP(KLON,KLEV+1)   ! SW total sky flux up
REAL(KIND=JPRB) ,INTENT(OUT) :: PFSCDN(KLON,KLEV+1)  ! SW clear sky flux down
REAL(KIND=JPRB) ,INTENT(OUT) :: PFSCUP(KLON,KLEV+1)  ! SW clear sky flux up
!FC
REAL(KIND=JPRB) ,INTENT(OUT) :: PTOAB(KLON,NLW)  ! LW band all sky flux up
REAL(KIND=JPRB) ,INTENT(OUT) :: PTOACB(KLON,NLW)  ! LW band clear sky flux up
END SUBROUTINE RADLSW
END INTERFACE
