Index: LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 2364)
+++ LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90	(revision 2366)
@@ -164,5 +164,5 @@
          SWdn200, SWdn200clr, LWup200, LWup200clr, &
          LWdn200, LWdn200clr, solsw, solsw0, sollw, &
-         radsol, sollw0, sollwdown, sollw, gustiness, &
+         radsol, swradcorr, sollw0, sollwdown, sollw, gustiness, &
          sollwdownclr, lwdn0, ftsol, ustar, u10m, &
          v10m, pbl_tke, wake_delta_pbl_TKE, &
@@ -424,69 +424,69 @@
        CALL histwrite_phy(o_fsnow, zfra_o)
        CALL histwrite_phy(o_evap, evap)
-       CALL histwrite_phy(o_tops, topsw)
-       CALL histwrite_phy(o_tops0, topsw0)
+       CALL histwrite_phy(o_tops, topsw*swradcorr)
+       CALL histwrite_phy(o_tops0, topsw0*swradcorr)
        CALL histwrite_phy(o_topl, toplw)
        CALL histwrite_phy(o_topl0, toplw0)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
+          zx_tmp_fi2d(:) = swup(:,klevp1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWupTOA, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
+          zx_tmp_fi2d(:) = swup0(:,klevp1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWupTOAclr, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
+          zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWdnTOA, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
+          zx_tmp_fi2d(:) = swdn0(:,klevp1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWdnTOAclr, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(:) = topsw(:)-toplw(:)
+          zx_tmp_fi2d(:) = topsw(:)*swradcorr(:)-toplw(:)
        ENDIF
        CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
-       CALL histwrite_phy(o_SWup200, SWup200)
-       CALL histwrite_phy(o_SWup200clr, SWup200clr)
-       CALL histwrite_phy(o_SWdn200, SWdn200)
-       CALL histwrite_phy(o_SWdn200clr, SWdn200clr)
+       CALL histwrite_phy(o_SWup200, SWup200*swradcorr)
+       CALL histwrite_phy(o_SWup200clr, SWup200clr*swradcorr)
+       CALL histwrite_phy(o_SWdn200, SWdn200*swradcorr)
+       CALL histwrite_phy(o_SWdn200clr, SWdn200clr*swradcorr)
        CALL histwrite_phy(o_LWup200, LWup200)
        CALL histwrite_phy(o_LWup200clr, LWup200clr)
        CALL histwrite_phy(o_LWdn200, LWdn200)
        CALL histwrite_phy(o_LWdn200clr, LWdn200clr)
-       CALL histwrite_phy(o_sols, solsw)
-       CALL histwrite_phy(o_sols0, solsw0)
+       CALL histwrite_phy(o_sols, solsw*swradcorr)
+       CALL histwrite_phy(o_sols0, solsw0*swradcorr)
        CALL histwrite_phy(o_soll, sollw)
+       CALL histwrite_phy(o_soll0, sollw0)
        CALL histwrite_phy(o_radsol, radsol)
-       CALL histwrite_phy(o_soll0, sollw0)
-
-       IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
+
+       IF (vars_defined) THEN
+          zx_tmp_fi2d(:) = swup(:,1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWupSFC, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
+          zx_tmp_fi2d(:) = swup0(:,1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
+          zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWdnSFC, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
+          zx_tmp_fi2d(:) = swdn0(:,1)*swradcorr(:)
        ENDIF
        CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
 
        IF (vars_defined) THEN
-          zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
+          zx_tmp_fi2d(:)=sollwdown(:)-sollw(:)
        ENDIF
        CALL histwrite_phy(o_LWupSFC, zx_tmp_fi2d)
@@ -901,8 +901,8 @@
        ENDIF
        IF (ok_ade) THEN
-          CALL histwrite_phy(o_topswad, topswad_aero)
-          CALL histwrite_phy(o_topswad0, topswad0_aero)
-          CALL histwrite_phy(o_solswad, solswad_aero)
-          CALL histwrite_phy(o_solswad0, solswad0_aero)
+          CALL histwrite_phy(o_topswad, topswad_aero*swradcorr)
+          CALL histwrite_phy(o_topswad0, topswad0_aero*swradcorr)
+          CALL histwrite_phy(o_solswad, solswad_aero*swradcorr)
+          CALL histwrite_phy(o_solswad0, solswad0_aero*swradcorr)
           CALL histwrite_phy(o_toplwad, toplwad_aero)
           CALL histwrite_phy(o_toplwad0, toplwad0_aero)
@@ -911,21 +911,35 @@
           !====MS forcing diagnostics
           if (new_aod) then
-             CALL histwrite_phy(o_swtoaas_nat, topsw_aero(:,1))
-             CALL histwrite_phy(o_swsrfas_nat, solsw_aero(:,1))
-             CALL histwrite_phy(o_swtoacs_nat, topsw0_aero(:,1))
-             CALL histwrite_phy(o_swsrfcs_nat, solsw0_aero(:,1))
+             zx_tmp_fi2d(:)=topsw_aero(:,1)*swradcorr(:)
+             CALL histwrite_phy(o_swtoaas_nat,zx_tmp_fi2d)
+             zx_tmp_fi2d(:)=solsw_aero(:,1)*swradcorr(:)
+             CALL histwrite_phy(o_swsrfas_nat,zx_tmp_fi2d)
+             zx_tmp_fi2d(:)=topsw0_aero(:,1)*swradcorr(:)
+             CALL histwrite_phy(o_swtoacs_nat,zx_tmp_fi2d)
+             zx_tmp_fi2d(:)=solsw0_aero(:,1)*swradcorr(:)
+             CALL histwrite_phy(o_swsrfcs_nat,zx_tmp_fi2d)
              !ant
-             CALL histwrite_phy(o_swtoaas_ant, topsw_aero(:,2))
-             CALL histwrite_phy(o_swsrfas_ant, solsw_aero(:,2))
-             CALL histwrite_phy(o_swtoacs_ant, topsw0_aero(:,2))
-             CALL histwrite_phy(o_swsrfcs_ant, solsw0_aero(:,2))
+             zx_tmp_fi2d(:)=topsw_aero(:,2)*swradcorr(:)
+             CALL histwrite_phy(o_swtoaas_ant,zx_tmp_fi2d)
+             zx_tmp_fi2d(:)=solsw_aero(:,2)*swradcorr(:)
+             CALL histwrite_phy(o_swsrfas_ant,zx_tmp_fi2d)
+             zx_tmp_fi2d(:)=topsw0_aero(:,2)*swradcorr(:)
+             CALL histwrite_phy(o_swtoacs_ant,zx_tmp_fi2d)
+             zx_tmp_fi2d(:)=solsw0_aero(:,2)*swradcorr(:)
+             CALL histwrite_phy(o_swsrfcs_ant,zx_tmp_fi2d)
              !cf
              if (.not. aerosol_couple) then
-                CALL histwrite_phy(o_swtoacf_nat, topswcf_aero(:,1))
-                CALL histwrite_phy(o_swsrfcf_nat, solswcf_aero(:,1))
-                CALL histwrite_phy(o_swtoacf_ant, topswcf_aero(:,2))
-                CALL histwrite_phy(o_swsrfcf_ant, solswcf_aero(:,2))
-                CALL histwrite_phy(o_swtoacf_zero,topswcf_aero(:,3))
-                CALL histwrite_phy(o_swsrfcf_zero,solswcf_aero(:,3))
+                zx_tmp_fi2d(:)=topswcf_aero(:,1)*swradcorr(:)
+                CALL histwrite_phy(o_swtoacf_nat,zx_tmp_fi2d)
+                zx_tmp_fi2d(:)=solswcf_aero(:,1)*swradcorr(:)
+                CALL histwrite_phy(o_swsrfcf_nat,zx_tmp_fi2d)
+                zx_tmp_fi2d(:)=topswcf_aero(:,2)*swradcorr(:)
+                CALL histwrite_phy(o_swtoacf_ant,zx_tmp_fi2d)
+                zx_tmp_fi2d(:)=solswcf_aero(:,2)*swradcorr(:)
+                CALL histwrite_phy(o_swsrfcf_ant,zx_tmp_fi2d)
+                zx_tmp_fi2d(:)=topswcf_aero(:,3)*swradcorr(:)
+                CALL histwrite_phy(o_swtoacf_zero,zx_tmp_fi2d)
+                zx_tmp_fi2d(:)=solswcf_aero(:,3)*swradcorr(:)
+                CALL histwrite_phy(o_swsrfcf_zero,zx_tmp_fi2d)
              endif
           endif ! new_aod
@@ -933,6 +947,6 @@
        ENDIF
        IF (ok_aie) THEN
-          CALL histwrite_phy(o_topswai, topswai_aero)
-          CALL histwrite_phy(o_solswai, solswai_aero)
+          CALL histwrite_phy(o_topswai, topswai_aero*swradcorr)
+          CALL histwrite_phy(o_solswai, solswai_aero*swradcorr)
        ENDIF
        IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
@@ -1250,12 +1264,26 @@
        ENDIF
 
-       CALL histwrite_phy(o_rsu, swup)
-       CALL histwrite_phy(o_rsd, swdn)
+       DO k=1, klevp1
+         zx_tmp_fi3d1(:,k)=swup(:,k)*swradcorr(:)
+       ENDDO
+       CALL histwrite_phy(o_rsu, zx_tmp_fi3d1)
+       DO k=1, klevp1
+         zx_tmp_fi3d1(:,k)=swdn(:,k)*swradcorr(:)
+       ENDDO
+       CALL histwrite_phy(o_rsd, zx_tmp_fi3d1)
+       DO k=1, klevp1
+         zx_tmp_fi3d1(:,k)=swup0(:,k)*swradcorr(:)
+       ENDDO
+       CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
+       DO k=1, klevp1
+         zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:)
+       ENDDO
+       CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
+
        CALL histwrite_phy(o_rlu, lwup)
        CALL histwrite_phy(o_rld, lwdn)
-       CALL histwrite_phy(o_rsucs, swup0)
-       CALL histwrite_phy(o_rsdcs, swdn0)
        CALL histwrite_phy(o_rlucs, lwup0)
        CALL histwrite_phy(o_rldcs, lwdn0)
+
        IF(vars_defined) THEN
           zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
@@ -1263,4 +1291,5 @@
        ENDIF
        CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
+
        IF(vars_defined) THEN
           zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
@@ -1310,19 +1339,31 @@
             RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. &
             RCFC12_per.NE.RCFC12_act) THEN
-          IF(vars_defined) zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 )
+          IF(vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
           CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
-          IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 )
+          IF(vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
           CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
-          IF(vars_defined) zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 )
+          IF(vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
           CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
-          IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 )
+          IF(vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
           CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
-          CALL histwrite_phy(o_rsu4co2, swupp)
+          DO k=1, klevp1
+            zx_tmp_fi3d1(:,k)=swupp(:,k)*swradcorr(:)
+          ENDDO
+          CALL histwrite_phy(o_rsu4co2, zx_tmp_fi3d1)
+          DO k=1, klevp1
+            zx_tmp_fi3d1(:,k)=swup0p(:,k)*swradcorr(:)
+          ENDDO
+          CALL histwrite_phy(o_rsucs4co2, zx_tmp_fi3d1)
+          DO k=1, klevp1
+            zx_tmp_fi3d1(:,k)=swdnp(:,k)*swradcorr(:)
+          ENDDO
+          CALL histwrite_phy(o_rsd4co2, zx_tmp_fi3d1)
+          DO k=1, klevp1
+            zx_tmp_fi3d1(:,k)=swdn0p(:,k)*swradcorr(:)
+          ENDDO
+          CALL histwrite_phy(o_rsdcs4co2, zx_tmp_fi3d1)
           CALL histwrite_phy(o_rlu4co2, lwupp)
-          CALL histwrite_phy(o_rsucs4co2, swup0p)
           CALL histwrite_phy(o_rlucs4co2, lwup0p)
-          CALL histwrite_phy(o_rsd4co2, swdnp)
           CALL histwrite_phy(o_rld4co2, lwdnp)
-          CALL histwrite_phy(o_rsdcs4co2, swdn0p)
           CALL histwrite_phy(o_rldcs4co2, lwdn0p)
        ENDIF
Index: LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90	(revision 2364)
+++ LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90	(revision 2366)
@@ -48,4 +48,6 @@
       REAL, ALLOCATABLE, SAVE :: radsol(:)
 !$OMP THREADPRIVATE(radsol)
+      REAL, ALLOCATABLE, SAVE :: swradcorr(:)
+!$OMP THREADPRIVATE(swradcorr)
 
 !clesphy0 param physiq
@@ -97,8 +99,4 @@
 !$OMP THREADPRIVATE(clwcon0th,rnebcon0th)
 ! radiation outputs
-      REAL,ALLOCATABLE,SAVE :: zswdn0(:,:), zswdn(:,:)
-!$OMP THREADPRIVATE(zswdn0,zswdn)
-      REAL,ALLOCATABLE,SAVE :: zswup0(:,:), zswup(:,:)
-!$OMP THREADPRIVATE(zswup0,zswup)
       REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:)
 !$OMP THREADPRIVATE(swdn0,swdn)
@@ -344,7 +342,4 @@
       REAL,ALLOCATABLE,SAVE :: lwup0p(:,:), lwupp(:,:)
 !$OMP THREADPRIVATE(lwdn0p, lwdnp, lwup0p, lwupp)
-      REAL,ALLOCATABLE,SAVE :: zswdn0p(:,:), zswdnp(:,:)
-      REAL,ALLOCATABLE,SAVE :: zswup0p(:,:), zswupp(:,:)
-!$OMP THREADPRIVATE(zswdn0p, zswdnp, zswup0p, zswupp)
       REAL,ALLOCATABLE,SAVE :: swdn0p(:,:), swdnp(:,:)
       REAL,ALLOCATABLE,SAVE :: swup0p(:,:), swupp(:,:)
@@ -440,4 +435,5 @@
       ALLOCATE(solsw(klon), sollw(klon))
       ALLOCATE(radsol(klon))
+      ALLOCATE(swradcorr(klon))
       ALLOCATE(zmea(klon), zstd(klon), zsig(klon), zgam(klon))
       ALLOCATE(zthe(klon), zpic(klon), zval(klon))
@@ -465,6 +461,4 @@
       ALLOCATE(clwcon0th(klon,klev),rnebcon0th(klon,klev))
 ! radiation outputs
-      ALLOCATE(zswdn0(klon,klevp1), zswdn(klon,klevp1))
-      ALLOCATE(zswup0(klon,klevp1), zswup(klon,klevp1))
       ALLOCATE(swdn0(klon,klevp1), swdn(klon,klevp1))
       ALLOCATE(swup0(klon,klevp1), swup(klon,klevp1))
@@ -566,6 +560,4 @@
       ALLOCATE(lwdn0p(klon,klevp1), lwdnp(klon,klevp1))
       ALLOCATE(lwup0p(klon,klevp1), lwupp(klon,klevp1))
-      ALLOCATE(zswdn0p(klon,klevp1), zswdnp(klon,klevp1))
-      ALLOCATE(zswup0p(klon,klevp1), zswupp(klon,klevp1))
       ALLOCATE(swdn0p(klon,klevp1), swdnp(klon,klevp1))
       ALLOCATE(swup0p(klon,klevp1), swupp(klon,klevp1))
@@ -605,5 +597,5 @@
       deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2)
       deallocate(qsol,fevap,z0m,z0h,agesno)
-      deallocate(rain_fall, snow_fall, solsw, sollw, radsol)
+      deallocate(rain_fall, snow_fall, solsw, sollw, radsol, swradcorr)
       deallocate(zmea, zstd, zsig, zgam)
       deallocate(zthe, zpic, zval)
@@ -622,6 +614,4 @@
       deallocate(clwcon0th, rnebcon0th)
 ! radiation outputs
-      deallocate(zswdn0, zswdn)
-      deallocate(zswup0, zswup)
       deallocate(swdn0, swdn)
       deallocate(swup0, swup)
@@ -700,6 +690,4 @@
       deallocate(lwdn0p, lwdnp)
       deallocate(lwup0p, lwupp)
-      deallocate(zswdn0p, zswdnp)
-      deallocate(zswup0p, zswupp)
       deallocate(swdn0p, swdnp)
       deallocate(swup0p, swupp)
Index: LMDZ5/trunk/libf/phylmd/physiq.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/physiq.F90	(revision 2364)
+++ LMDZ5/trunk/libf/phylmd/physiq.F90	(revision 2366)
@@ -590,5 +590,5 @@
   !
   REAL dist, rmu0(klon), fract(klon)
-  REAL zrmu0(klon), zfract(klon), swradcorr(klon)
+  REAL zrmu0(klon), zfract(klon)
   REAL zdtime, zdtime1, zdtime2, zlongi
   !
@@ -1846,6 +1846,6 @@
      !  Comme cette routine est appele a tous les pas de temps de la physique
      !  meme si le rayonnement n'est pas appele je remonte en arriere les
-     !  radpas-1 pas de temps suivant. Petite ruse pour prendre en compte le
-     !  premier pas de temps la physique ou itaprad=0 
+     !  radpas-1 pas de temps suivant. Petite ruse avec MOD pour prendre en
+     !  compte le premier pas de temps de la physique pendant lequel itaprad=0 
         zdtime1=dtime*REAL(-MOD(itaprad,4)-1)      
         zdtime2=dtime*REAL(radpas-MOD(itaprad,4)-1) 
@@ -3586,5 +3586,5 @@
              topsw0,toplw0,solsw0,sollw0, &
              lwdn0, lwdn, lwup0, lwup,  &
-             zswdn0, zswdn, zswup0, zswup, &
+             swdn0, swdn, swup0, swup, &
              ok_ade, ok_aie, &
              tau_aero, piz_aero, cg_aero, &
@@ -3627,10 +3627,10 @@
              zqsat, flwc, fiwc, &
              ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
-             heat,heat0,cool,cool0,radsol,albpla, &
+             heat,heat0,cool,cool0,albpla, &
              topsw,toplw,solsw,sollw, &
              sollwdown, &
              topsw0,toplw0,solsw0,sollw0, &
              lwdn0, lwdn, lwup0, lwup,  &
-             zswdn0, zswdn, zswup0, zswup, &
+             swdn0, swdn, swup0, swup, &
              topswad_aero, solswad_aero, &
              topswai_aero, solswai_aero, &
@@ -3683,10 +3683,10 @@
                    zqsat, flwc, fiwc, &
                    ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
-                   heatp,heat0p,coolp,cool0p,radsolp,albplap, &
+                   heatp,heat0p,coolp,cool0p,albplap, &
                    topswp,toplwp,solswp,sollwp, &
                    sollwdownp, &
                    topsw0p,toplw0p,solsw0p,sollw0p, &
                    lwdn0p, lwdnp, lwup0p, lwupp,  &
-                   zswdn0p, zswdnp, zswup0p, zswupp, &
+                   swdn0p, swdnp, swup0p, swupp, &
                    topswad_aerop, solswad_aerop, &
                    topswai_aerop, solswai_aerop, &
@@ -3730,6 +3730,4 @@
      swup=0.    ! MPL 27102011 pour les fichiers AMMA_profiles et AMMA_scalars
      swup0=0.
-     zswdn=0.
-     zswdn0=0.
      lwup=0.
      lwup0=0.
@@ -3739,25 +3737,16 @@
 
   !
-  ! Corriger les flux SW pour le cycle diurne ameliore
+  ! Calculer radsol a l'exterieur de radlwsw
+  ! pour prendre en compte le cycle diurne
   ! recode par Olivier Boucher en sept 2015
   !
-
-  DO k=1, klev+1
-    swdn0(:,k)=swradcorr(:)*zswdn0(:,k)
-    swdn(:,k) =swradcorr(:)*zswdn(:,k)
-    swup0(:,k)=swradcorr(:)*zswup0(:,k)
-    swup(:,k) =swradcorr(:)*zswup(:,k)
-  ENDDO
+  radsol=solsw*swradcorr+sollw
   if (ok_4xCO2atm) then
-  DO k=1, klev+1
-    swdn0p(:,k)=swradcorr(:)*zswdn0p(:,k)
-    swdnp(:,k) =swradcorr(:)*zswdnp(:,k)
-    swup0p(:,k)=swradcorr(:)*zswup0p(:,k)
-    swupp(:,k) =swradcorr(:)*zswupp(:,k)
-  ENDDO
+    radsolp=solswp*swradcorr+sollwp
   endif
 
   !
   ! Ajouter la tendance des rayonnements (tous les pas)
+  ! avec une correction pour le cycle diurne dans le SW
   !
   
Index: LMDZ5/trunk/libf/phylmd/radlwsw_m.F90
===================================================================
--- LMDZ5/trunk/libf/phylmd/radlwsw_m.F90	(revision 2364)
+++ LMDZ5/trunk/libf/phylmd/radlwsw_m.F90	(revision 2366)
@@ -24,5 +24,5 @@
    qsat, flwc, fiwc, &
    ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
-   heat,heat0,cool,cool0,radsol,albpla,&
+   heat,heat0,cool,cool0,albpla,&
    topsw,toplw,solsw,sollw,&
    sollwdown,&
@@ -111,5 +111,4 @@
   ! heat-----output-R- echauffement atmospherique (visible) (K/jour)
   ! cool-----output-R- refroidissement dans l'IR (K/jour)
-  ! radsol---output-R- bilan radiatif net au sol (W/m**2) (+ vers le bas)
   ! albpla---output-R- albedo planetaire (entre 0 et 1)
   ! topsw----output-R- flux solaire net au sommet de l'atm.
@@ -224,5 +223,5 @@
   REAL,    INTENT(out) :: heat(KLON,KLEV), cool(KLON,KLEV)
   REAL,    INTENT(out) :: heat0(KLON,KLEV), cool0(KLON,KLEV)
-  REAL,    INTENT(out) :: radsol(KLON), topsw(KLON), toplw(KLON)
+  REAL,    INTENT(out) :: topsw(KLON), toplw(KLON)
   REAL,    INTENT(out) :: solsw(KLON), sollw(KLON), albpla(KLON)
   REAL,    INTENT(out) :: topsw0(KLON), toplw0(KLON), solsw0(KLON), sollw0(KLON)
@@ -1032,5 +1031,4 @@
 
     DO i = 1, kdlon
-      radsol(iof+i) = zsolsw(i) + zsollw(i)
       topsw(iof+i) = ztopsw(i)
       toplw(iof+i) = ztoplw(i)
