Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F	(revision 1158)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F	(revision 1159)
@@ -2941,5 +2941,5 @@
 
          CALL radlwsw_aero
-     e        (dist, rmu0, fract, solaire,
+     e        (dist, rmu0, fract, 
      e        paprs, pplay,zxtsol,albsol1, albsol2, 
      e        t_seri,q_seri,wo,
@@ -2948,4 +2948,5 @@
      e        tau_aero, piz_aero, cg_aero,
      e        cldtaupi,new_aod,
+     e        zqsat, flwc, fiwc,
      s        heat,heat0,cool,cool0,radsol,albpla,
      s        topsw,toplw,solsw,sollw,
Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/radlwsw_aero.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/radlwsw_aero.F90	(revision 1158)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/radlwsw_aero.F90	(revision 1159)
@@ -1,5 +1,5 @@
 SUBROUTINE radlwsw_aero( &
-   dist, rmu0, fract, solaire, &
-   paprs, pplay,tsol,albedo, alblw, &
+   dist, rmu0, fract, &
+   paprs, pplay,tsol,alb1, alb2, &
    t,q,wo,&
    cldfra, cldemi, cldtaupd,&
@@ -7,4 +7,5 @@
    tau_aero, piz_aero, cg_aero,&
    cldtaupi, new_aod, &
+   qsat, flwc, fiwc, &
    heat,heat0,cool,cool0,radsol,albpla,&
    topsw,toplw,solsw,sollw,&
@@ -32,9 +33,9 @@
   ! fract----input-R- duree d'ensoleillement normalisee
   ! co2_ppm--input-R- concentration du gaz carbonique (en ppm)
-  ! solaire--input-R- constante solaire (W/m**2)
   ! paprs----input-R- pression a inter-couche (Pa)
   ! pplay----input-R- pression au milieu de couche (Pa)
   ! tsol-----input-R- temperature du sol (en K)
-  ! albedo---input-R- albedo du sol (entre 0 et 1)
+  ! alb1-----input-R- albedo du sol(entre 0 et 1) dans l'interval visible 
+  ! alb2-----input-R- albedo du sol(entre 0 et 1) dans l'interval proche infra-rouge   
   ! t--------input-R- temperature (K)
   ! q--------input-R- vapeur d'eau (en kg/kg)
@@ -92,11 +93,12 @@
   include "YOETHF.h"
   include "YOMCST.h"
+  include "clesphys.h"
+  include "iniprint.h"
 
 ! Input arguments
-  REAL,    INTENT(in)  :: solaire
   REAL,    INTENT(in)  :: dist
   REAL,    INTENT(in)  :: rmu0(KLON), fract(KLON)
   REAL,    INTENT(in)  :: paprs(KLON,KLEV+1), pplay(KLON,KLEV)
-  REAL,    INTENT(in)  :: albedo(KLON), alblw(KLON), tsol(KLON)
+  REAL,    INTENT(in)  :: alb1(KLON), alb2(KLON), tsol(KLON)
   REAL,    INTENT(in)  :: t(KLON,KLEV), q(KLON,KLEV), wo(KLON,KLEV)
   LOGICAL, INTENT(in)  :: ok_ade, ok_aie                                 ! switches whether to use aerosol direct (indirect) effects or not
@@ -107,4 +109,7 @@
   REAL,    INTENT(in)  :: cldtaupi(KLON,KLEV)                            ! cloud optical thickness for pre-industrial aerosol concentrations
   LOGICAL, INTENT(in)  :: new_aod                                        ! flag pour retrouver les resultats exacts de l'AR4 dans le cas ou l'on ne travaille qu'avec les sulfates
+  REAL,    INTENT(in)  :: qsat(klon,klev) ! Variable pour iflag_rrtm=1
+  REAL,    INTENT(in)  :: flwc(klon,klev) ! Variable pour iflag_rrtm=1
+  REAL,    INTENT(in)  :: fiwc(klon,klev) ! Variable pour iflag_rrtm=1
 
 ! Output arguments
@@ -207,8 +212,8 @@
       zfract(i) = fract(iof+i)
       zrmu0(i) = rmu0(iof+i)
-      PALBD(i,1) = albedo(iof+i)
-      PALBD(i,2) = alblw(iof+i)
-      PALBP(i,1) = albedo(iof+i)
-      PALBP(i,2) = alblw(iof+i)
+      PALBD(i,1) = alb1(iof+i)
+      PALBD(i,2) = alb2(iof+i)
+      PALBP(i,1) = alb1(iof+i)
+      PALBP(i,2) = alb2(iof+i)
       PEMIS(i) = 1.0 
       PVIEW(i) = 1.66
@@ -281,54 +286,66 @@
       ENDDO
     ENDDO
-    !
-    !======================================================================
-    CALL LW_LMDAR4(&
-       PPMB, PDP,&
-       PPSOL,PDT0,PEMIS,&
-       PTL, PTAVE, PWV, POZON, PAER,&
-       PCLDLD,PCLDLU,&
-       PVIEW,&
-       zcool, zcool0,&
-       ztoplw,zsollw,ztoplw0,zsollw0,&
-       zsollwdown,&
-       ZFLUP, ZFLDN, ZFLUP0,ZFLDN0)
-
-
-    IF (.NOT. new_aod) THEN 
-       ! use old version
-        CALL SW_LMDAR4(PSCT, zrmu0, zfract,&
-           PPMB, PDP, &
-           PPSOL, PALBD, PALBP,&
-           PTAVE, PWV, PQS, POZON, PAER,&
-           PCLDSW, PTAU, POMEGA, PCG,&
-           zheat, zheat0,&
-           zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
-           ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
-           tau_aero(:,:,5,:), piz_aero(:,:,5,:), cg_aero(:,:,5,:),& 
-           PTAUA, POMEGAA,&
-           ztopswadaero,zsolswadaero,&
-           ztopswaiaero,zsolswaiaero,& 
-           ok_ade, ok_aie) 
-    ELSE
-
-        CALL SW_AEROAR4(PSCT, zrmu0, zfract,&
-           PPMB, PDP,&
-           PPSOL, PALBD, PALBP,&
-           PTAVE, PWV, PQS, POZON, PAER,&
-           PCLDSW, PTAU, POMEGA, PCG,&
-           zheat, zheat0,&
-           zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
-           ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
-           tauaero, pizaero, cgaero, &
-           PTAUA, POMEGAA,&
-           ztopswadaero,zsolswadaero,&
-           ztopswad0aero,zsolswad0aero,&
-           ztopswaiaero,zsolswaiaero, & 
-           ztopsw_aero,ztopsw0_aero,&
-           zsolsw_aero,zsolsw0_aero,&
-           ok_ade, ok_aie) 
-    
-    ENDIF
-    !======================================================================
+
+!
+!===== iflag_rrtm ================================================
+!      
+    IF (iflag_rrtm == 0) THEN
+       ! Old radiation scheme, used for AR4 runs
+       CALL LW_LMDAR4(&
+            PPMB, PDP,&
+            PPSOL,PDT0,PEMIS,&
+            PTL, PTAVE, PWV, POZON, PAER,&
+            PCLDLD,PCLDLU,&
+            PVIEW,&
+            zcool, zcool0,&
+            ztoplw,zsollw,ztoplw0,zsollw0,&
+            zsollwdown,&
+            ZFLUP, ZFLDN, ZFLUP0,ZFLDN0)
+
+
+       IF (.NOT. new_aod) THEN 
+          ! use old version
+          CALL SW_LMDAR4(PSCT, zrmu0, zfract,&
+               PPMB, PDP, &
+               PPSOL, PALBD, PALBP,&
+               PTAVE, PWV, PQS, POZON, PAER,&
+               PCLDSW, PTAU, POMEGA, PCG,&
+               zheat, zheat0,&
+               zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
+               ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
+               tau_aero(:,:,5,:), piz_aero(:,:,5,:), cg_aero(:,:,5,:),& 
+               PTAUA, POMEGAA,&
+               ztopswadaero,zsolswadaero,&
+               ztopswaiaero,zsolswaiaero,& 
+               ok_ade, ok_aie) 
+          
+       ELSE ! new_aod=T         
+          CALL SW_AEROAR4(PSCT, zrmu0, zfract,&
+               PPMB, PDP,&
+               PPSOL, PALBD, PALBP,&
+               PTAVE, PWV, PQS, POZON, PAER,&
+               PCLDSW, PTAU, POMEGA, PCG,&
+               zheat, zheat0,&
+               zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
+               ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
+               tauaero, pizaero, cgaero, &
+               PTAUA, POMEGAA,&
+               ztopswadaero,zsolswadaero,&
+               ztopswad0aero,zsolswad0aero,&
+               ztopswaiaero,zsolswaiaero, & 
+               ztopsw_aero,ztopsw0_aero,&
+               zsolsw_aero,zsolsw0_aero,&
+               ok_ade, ok_aie) 
+          
+       ENDIF
+
+    ELSE  
+!===== iflag_rrtm=1, on passe dans SW via RECMWFL ===============
+       WRITE(lunout,*) "Option iflag_rrtm=T ne fonctionne pas encore !!!"
+       CALL abort_gcm('radlwsw_aero','iflag_rrtm=T not valid',1) 
+
+    ENDIF ! iflag_rrtm
+!======================================================================
+
     DO i = 1, kdlon
       radsol(iof+i) = zsolsw(i) + zsollw(i)
@@ -405,9 +422,9 @@
       ENDDO
     ENDDO
-    !
-  ENDDO
-
-
-ENDSUBROUTINE radlwsw_aero
-
-
+
+ ENDDO ! j = 1, nb_gr
+
+
+END SUBROUTINE radlwsw_aero
+
+
Index: LMDZ4/branches/LMDZ4-dev/libf/phylmd/sw_aeroAR4.F90
===================================================================
--- LMDZ4/branches/LMDZ4-dev/libf/phylmd/sw_aeroAR4.F90	(revision 1158)
+++ LMDZ4/branches/LMDZ4-dev/libf/phylmd/sw_aeroAR4.F90	(revision 1159)
@@ -114,13 +114,15 @@
   PARAMETER(swpas=1)
 
-  INTEGER itapsw
-  LOGICAL appel1er
-  DATA itapsw /0/
-  DATA appel1er /.TRUE./
-  SAVE itapsw,appel1er
+  INTEGER, SAVE :: itapsw = 0
+  !$OMP THREADPRIVATE(itapsw)
+  LOGICAL, SAVE :: appel1er = .TRUE.
   !$OMP THREADPRIVATE(appel1er)
-  !$OMP THREADPRIVATE(itapsw)
+  LOGICAL, SAVE :: initialized = .FALSE.
+  !$OMP THREADPRIVATE(initialized)
+
   !jq-Introduced for aerosol forcings
-  REAL*8 flag_aer
+  REAL*8, SAVE :: flag_aer
+  !$OMP THREADPRIVATE(flag_aer)
+
   LOGICAL ok_ade, ok_aie    ! use aerosol forcings or not?
   REAL*8 tauaero(kdlon,kflev,9,2)  ! aerosol optical properties
@@ -162,12 +164,4 @@
   REAL*8,ALLOCATABLE,SAVE ::  ZFSDN0_AERO(:,:,:)
   !$OMP THREADPRIVATE(ZFSDN0_AERO)
-
-  LOGICAL initialized
-  !rv
-  SAVE flag_aer
-  !$OMP THREADPRIVATE(flag_aer)
-  DATA initialized/.FALSE./
-  SAVE initialized
-  !$OMP THREADPRIVATE(initialized)
 
 
@@ -196,5 +190,4 @@
      ZFSDN0_AERO(:,:,:)=0.
   ENDIF
-  !rv
 
 
