diff --git a/src/MNH/end_diag_in_run.f90 b/src/MNH/end_diag_in_run.f90
index 7842d15969d4ce07c420aadb8ff29e54b727c23d..139ba83bee5bc12af51fbb463a93fab6ad36a449 100644
--- a/src/MNH/end_diag_in_run.f90
+++ b/src/MNH/end_diag_in_run.f90
@@ -78,8 +78,10 @@ DEALLOCATE(XCURRENT_H     )! sensible heat flux
 DEALLOCATE(XCURRENT_LE    )! latent heat flux
 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
+DEALLOCATE(XCURRENT_LWD   )! incoming longwave at the surface
+DEALLOCATE(XCURRENT_LWU   )! outcoming longwave at the surface
+DEALLOCATE(XCURRENT_SWD   )! incoming Shortwave at the surface
+DEALLOCATE(XCURRENT_SWU   )! outcoming 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
diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90
index d6c91b20f84909961e85f6a73787a424c63016dd..0c180144ed1db110f89b292bdee6820038f5f25a 100644
--- a/src/MNH/ground_paramn.f90
+++ b/src/MNH/ground_paramn.f90
@@ -131,7 +131,7 @@ USE MODD_CONF,       ONLY : LCARTESIAN, CPROGRAM
 USE MODD_TIME_n,     ONLY : TDTCUR
 USE MODD_RADIATIONS_n,   ONLY : XFLALWD, XCCO2, XTSIDER, &
                                 XSW_BANDS, XDIRSRFSWD, XSCAFLASWD, &
-                                XZENITH, XAZIM, XAER
+                                XZENITH, XAZIM, XAER, XSWU, XLWU
 USE MODD_NSV
 USE MODD_GRID,       ONLY : XLON0, XRPK, XBETA
 USE MODD_PARAM_ICE,  ONLY : LSEDIC
@@ -701,8 +701,10 @@ PSFCO2(:,:) = ZSFCO2(:,:) / XRHODREF(:,:,IKB)
 !
 IF (LDIAG_IN_RUN) THEN
   !
-  XCURRENT_LW   (:,:) = XFLALWD(:,:)
-  XCURRENT_SW   (:,:) = SUM(XDIRSRFSWD(:,:,:)+XSCAFLASWD(:,:,:),DIM=3)
+  XCURRENT_LWD  (:,:) = XFLALWD(:,:)
+  XCURRENT_SWD  (:,:) = SUM(XDIRSRFSWD(:,:,:)+XSCAFLASWD(:,:,:),DIM=3)
+  XCURRENT_LWU  (:,:) = XLWU(:,:,IKB) 
+  XCURRENT_SWU  (:,:) = XSWU(:,:,IKB) 
   XCURRENT_SWDIR(:,:) = SUM(XDIRSRFSWD,DIM=3)
   XCURRENT_SWDIFF(:,:) = SUM(XSCAFLASWD(:,:,:),DIM=3) 
   XCURRENT_SFCO2(:,:) = ZSFCO2(:,:)
@@ -723,8 +725,10 @@ IF (LDIAG_IN_RUN) THEN
   CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_H     )
   CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LE    )
   CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_GFLUX )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SW    )
-  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LW    )
+  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SWD   )
+  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_SWU   )
+  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LWD   )
+  CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_LWU   )
   CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_T2M   )
   CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_Q2M   )
   CALL ADD2DFIELD_ll(TZFIELDSURF_ll,XCURRENT_HU2M  )
diff --git a/src/MNH/ini_diag_in_run.f90 b/src/MNH/ini_diag_in_run.f90
index 5dd45edd172c3bc9ae13d3ec89622e5dcd26bddf..2df092c1c83f13ae1e26a1cc14c9d704603156e5 100644
--- a/src/MNH/ini_diag_in_run.f90
+++ b/src/MNH/ini_diag_in_run.f90
@@ -99,8 +99,10 @@ IF (LDIAG_IN_RUN) THEN
   ALLOCATE(XCURRENT_LE    (KIU,KJU))! Total latent heat flux
   ALLOCATE(XCURRENT_LEI   (KIU,KJU))! Solid latent heat flux  
   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_LWD   (KIU,KJU))! incoming longwave at the surface
+  ALLOCATE(XCURRENT_LWU   (KIU,KJU))! outcoming longwave at the surface
+  ALLOCATE(XCURRENT_SWD   (KIU,KJU))! incoming Shortwave at the surface
+  ALLOCATE(XCURRENT_SWU   (KIU,KJU))! outcoming 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
@@ -118,8 +120,10 @@ IF (LDIAG_IN_RUN) THEN
   XCURRENT_LE    = XUNDEF
   XCURRENT_LEI   = XUNDEF  
   XCURRENT_GFLUX = XUNDEF
-  XCURRENT_LW    = XUNDEF
-  XCURRENT_SW    = XUNDEF
+  XCURRENT_LWD   = XUNDEF
+  XCURRENT_LWU   = XUNDEF
+  XCURRENT_SWD   = XUNDEF
+  XCURRENT_SWU   = XUNDEF
   XCURRENT_SWDIR = XUNDEF
   XCURRENT_SWDIFF= XUNDEF  
   XCURRENT_T2M   = XUNDEF
@@ -136,8 +140,10 @@ ELSE
   ALLOCATE(XCURRENT_LE    (0,0))! Total latent heat flux
   ALLOCATE(XCURRENT_LEI   (0,0))! Solid latent heat flux  
   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_LWD   (0,0))! incoming longwave at the surface
+  ALLOCATE(XCURRENT_LWU   (0,0))! outcoming longwave at the surface
+  ALLOCATE(XCURRENT_SWD   (0,0))! incoming Shortwave at the surface
+  ALLOCATE(XCURRENT_SWU   (0,0))! outcoming 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
diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90
index 841ccdb3328c77a114444a901af27ddf1120cb62..846d52d7432b983014b773126e9b9c8fcf92220c 100644
--- a/src/MNH/ini_posprofilern.f90
+++ b/src/MNH/ini_posprofilern.f90
@@ -198,8 +198,10 @@ ALLOCATE(TPROFILER%H       (ISTORE,NUMBPROFILER))
 ALLOCATE(TPROFILER%LE      (ISTORE,NUMBPROFILER))
 ALLOCATE(TPROFILER%LEI     (ISTORE,NUMBPROFILER))
 ALLOCATE(TPROFILER%GFLUX   (ISTORE,NUMBPROFILER))
-ALLOCATE(TPROFILER%LW      (ISTORE,NUMBPROFILER))
-ALLOCATE(TPROFILER%SW      (ISTORE,NUMBPROFILER))
+ALLOCATE(TPROFILER%LWD     (ISTORE,NUMBPROFILER))
+ALLOCATE(TPROFILER%LWU     (ISTORE,NUMBPROFILER))
+ALLOCATE(TPROFILER%SWD     (ISTORE,NUMBPROFILER))
+ALLOCATE(TPROFILER%SWU     (ISTORE,NUMBPROFILER))
 ALLOCATE(TPROFILER%IWV   (ISTORE,NUMBPROFILER))
 ALLOCATE(TPROFILER%ZTD   (ISTORE,NUMBPROFILER))
 ALLOCATE(TPROFILER%ZWD   (ISTORE,NUMBPROFILER))
@@ -240,8 +242,10 @@ TPROFILER%H        = XUNDEF
 TPROFILER%LE       = XUNDEF
 TPROFILER%GFLUX    = XUNDEF
 TPROFILER%LEI      = XUNDEF
-TPROFILER%LW       = XUNDEF
-TPROFILER%SW       = XUNDEF
+TPROFILER%LWD      = XUNDEF
+TPROFILER%LWU      = XUNDEF
+TPROFILER%SWD      = XUNDEF
+TPROFILER%SWU      = XUNDEF
 TPROFILER%TKE_DISS = XUNDEF
 !
 END SUBROUTINE ALLOCATE_PROFILER_n
diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90
index 0e37706291e7f34d452ab71dfe1d7feb295f1d33..887733edec7e871f9e68f5788220e80fb218a221 100644
--- a/src/MNH/ini_surfstationn.f90
+++ b/src/MNH/ini_surfstationn.f90
@@ -190,8 +190,10 @@ ALLOCATE(TSTATION%H       (ISTORE,NUMBSTAT))
 ALLOCATE(TSTATION%LE      (ISTORE,NUMBSTAT))
 ALLOCATE(TSTATION%GFLUX   (ISTORE,NUMBSTAT))
 ALLOCATE(TSTATION%LEI     (ISTORE,NUMBSTAT))
-ALLOCATE(TSTATION%SW      (ISTORE,NUMBSTAT))
-ALLOCATE(TSTATION%LW      (ISTORE,NUMBSTAT))
+ALLOCATE(TSTATION%SWD     (ISTORE,NUMBSTAT))
+ALLOCATE(TSTATION%SWU     (ISTORE,NUMBSTAT))
+ALLOCATE(TSTATION%LWD     (ISTORE,NUMBSTAT))
+ALLOCATE(TSTATION%LWU     (ISTORE,NUMBSTAT))
 ALLOCATE(TSTATION%DSTAOD  (ISTORE,NUMBSTAT))
 ALLOCATE(TSTATION%SFCO2   (ISTORE,NUMBSTAT))
 !
@@ -217,8 +219,10 @@ TSTATION%H       = XUNDEF
 TSTATION%LE      = XUNDEF
 TSTATION%GFLUX   = XUNDEF
 TSTATION%LEI     = XUNDEF
-TSTATION%SW      = XUNDEF
-TSTATION%LW      = XUNDEF
+TSTATION%SWD     = XUNDEF
+TSTATION%SWU     = XUNDEF
+TSTATION%LWD     = XUNDEF
+TSTATION%LWU     = XUNDEF
 TSTATION%DSTAOD  = XUNDEF
 TSTATION%SFCO2   = XUNDEF
 !
diff --git a/src/MNH/modd_diag_in_run.f90 b/src/MNH/modd_diag_in_run.f90
index 0bec81d24c3b9cd08b09ef1edafee5bc7c4f2003..4c52ea1175777bf35c09d329002634b54f7c99ca 100644
--- a/src/MNH/modd_diag_in_run.f90
+++ b/src/MNH/modd_diag_in_run.f90
@@ -23,8 +23,10 @@ REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_H     ! sensible heat flux
 REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_LE    ! Total latent heat flux
 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_LWD   ! incoming longwave at the surface
+REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_LWU   ! outcoming longwave at the surface
+REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_SWD   ! incoming Shortwave at the surface
+REAL, DIMENSION(:,:),   ALLOCATABLE :: XCURRENT_SWU   ! outcoming 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
diff --git a/src/MNH/modd_type_profiler.f90 b/src/MNH/modd_type_profiler.f90
index 9c14fdda428a3484fe34389787de9aef2f143bfe..944e44307e28dfd270eca6ca185cee5c28c5676b 100644
--- a/src/MNH/modd_type_profiler.f90
+++ b/src/MNH/modd_type_profiler.f90
@@ -97,8 +97,10 @@ REAL, DIMENSION(:,:),     POINTER :: H=>NULL()        ! sensible heat flux (W m2
 REAL, DIMENSION(:,:),     POINTER :: LE=>NULL()       ! Total latent heat flux (W m2)
 REAL, DIMENSION(:,:),     POINTER :: LEI=>NULL()      ! Solid latent heat flux (W m2)
 REAL, DIMENSION(:,:),     POINTER :: GFLUX=>NULL()    ! storage heat flux (W m2)
-REAL, DIMENSION(:,:),     POINTER :: LW=>NULL()       ! IR downward radiation (W m2)
-REAL, DIMENSION(:,:),     POINTER :: SW=>NULL()       ! solar downward radiation (W m2)
+REAL, DIMENSION(:,:),     POINTER :: LWD=>NULL()       ! IR downward radiation (W m2)
+REAL, DIMENSION(:,:),     POINTER :: LWU=>NULL()       ! IR upward radiation (W m2)
+REAL, DIMENSION(:,:),     POINTER :: SWD=>NULL()       ! solar downward radiation (W m2)
+REAL, DIMENSION(:,:),     POINTER :: SWU=>NULL()       ! solar upward radiation (W m2)
 REAL, DIMENSION(:,:),   POINTER :: IWV=>NULL()      ! integrated water vpour(n)
 REAL, DIMENSION(:,:),   POINTER :: ZTD=>NULL()      ! GPS zenith tropo delay(n)
 REAL, DIMENSION(:,:),   POINTER :: ZWD=>NULL()      ! GPS zenith wet delay(n)
diff --git a/src/MNH/modd_type_station.f90 b/src/MNH/modd_type_station.f90
index d1cb05be0ef35aaa9965d10eee9f92efec9d0d67..462358f2dd38cf66d8f8f52337baa5d89ba95a49 100644
--- a/src/MNH/modd_type_station.f90
+++ b/src/MNH/modd_type_station.f90
@@ -79,10 +79,12 @@ 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 :: SWD=>NULL()     ! 
+REAL, DIMENSION(:,:),   POINTER :: SWU=>NULL()     ! 
+REAL, DIMENSION(:,:),   POINTER :: LWD=>NULL()     !
+REAL, DIMENSION(:,:),   POINTER :: LWU=>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/profilern.f90 b/src/MNH/profilern.f90
index 81c3192c8c23474afa323bd793b410dc1ad5e51c..a463a4ad712b60b1a0dfabcc444ed12fe91e4b55 100644
--- a/src/MNH/profilern.f90
+++ b/src/MNH/profilern.f90
@@ -538,8 +538,10 @@ IF (GSTORE) THEN
         TPROFILER%LE    (IN,I)     = PROFILER_INTERP_2D(XCURRENT_LE    )
         TPROFILER%LEI   (IN,I)     = PROFILER_INTERP_2D(XCURRENT_LEI   )        
         TPROFILER%GFLUX (IN,I)     = PROFILER_INTERP_2D(XCURRENT_GFLUX )
-        TPROFILER%SW    (IN,I)     = PROFILER_INTERP_2D(XCURRENT_SW    )
-        TPROFILER%LW    (IN,I)     = PROFILER_INTERP_2D(XCURRENT_LW    )
+        TPROFILER%SWD   (IN,I)     = PROFILER_INTERP_2D(XCURRENT_SWD   )
+        TPROFILER%SWU   (IN,I)     = PROFILER_INTERP_2D(XCURRENT_SWU   )
+        TPROFILER%LWD   (IN,I)     = PROFILER_INTERP_2D(XCURRENT_LWD   )
+        TPROFILER%LWU   (IN,I)     = PROFILER_INTERP_2D(XCURRENT_LWU   )
         TPROFILER%TKE_DISS(IN,:,I) = PROFILER_INTERP(XCURRENT_TKE_DISS)
       ENDIF
     ENDIF
@@ -568,8 +570,10 @@ IF (GSTORE) THEN
     CALL DISTRIBUTE_PROFILER(TPROFILER%LE    (IN,I))
     CALL DISTRIBUTE_PROFILER(TPROFILER%LEI   (IN,I))
     CALL DISTRIBUTE_PROFILER(TPROFILER%GFLUX (IN,I))
-    CALL DISTRIBUTE_PROFILER(TPROFILER%LW    (IN,I))
-    CALL DISTRIBUTE_PROFILER(TPROFILER%SW    (IN,I))
+    CALL DISTRIBUTE_PROFILER(TPROFILER%LWD   (IN,I))
+    CALL DISTRIBUTE_PROFILER(TPROFILER%LWU   (IN,I))
+    CALL DISTRIBUTE_PROFILER(TPROFILER%SWD   (IN,I))
+    CALL DISTRIBUTE_PROFILER(TPROFILER%SWU   (IN,I))
   ENDIF
  DO JK=1,IKU
   CALL DISTRIBUTE_PROFILER(TPROFILER%ZON (IN,JK,I))
diff --git a/src/MNH/stationn.f90 b/src/MNH/stationn.f90
index 66cae781b1358b9d8cade0b86c984775a6f254cd..2fa1ab92cfafb6252f3ea28062feacf644b2420d 100644
--- a/src/MNH/stationn.f90
+++ b/src/MNH/stationn.f90
@@ -398,10 +398,12 @@ IF (GSTORE) THEN
           TSTATION%LE    (IN,I) = STATION_INTERP_2D(XCURRENT_LE    ) 
           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%SWD   (IN,I) = STATION_INTERP_2D(XCURRENT_SWD   ) 
+          TSTATION%SWU   (IN,I) = STATION_INTERP_2D(XCURRENT_SWU   ) 
+          TSTATION%LWD   (IN,I) = STATION_INTERP_2D(XCURRENT_LWD   ) 
+          TSTATION%LWU   (IN,I) = STATION_INTERP_2D(XCURRENT_LWU   ) 
           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 ) 
         ENDIF
@@ -433,10 +435,12 @@ IF (GSTORE) THEN
           TSTATION%LE    (IN,I) = XCURRENT_LE(TSTATION%I(I),TSTATION%J(I))
           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%SWD   (IN,I) = XCURRENT_SWD(TSTATION%I(I),TSTATION%J(I))
+          TSTATION%SWU   (IN,I) = XCURRENT_SWU(TSTATION%I(I),TSTATION%J(I))
+          TSTATION%LWD   (IN,I) = XCURRENT_LWD(TSTATION%I(I),TSTATION%J(I))
+          TSTATION%LWU   (IN,I) = XCURRENT_LWU(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))
         ENDIF
@@ -482,10 +486,12 @@ IF (GSTORE) THEN
     CALL DISTRIBUTE_STATION(TSTATION%LE     (IN,I))
     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%SWD    (IN,I))
+    CALL DISTRIBUTE_STATION(TSTATION%SWU    (IN,I))
+    CALL DISTRIBUTE_STATION(TSTATION%LWD    (IN,I))
+    CALL DISTRIBUTE_STATION(TSTATION%LWU    (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))
   ENDIF
diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90
index dfa72a8bb426348d4c53adb20994ba1e5986c3aa..b153f6707057caef77fa860ce34b13d33f7be10a 100644
--- a/src/MNH/write_lfifm1_for_diag_supp.f90
+++ b/src/MNH/write_lfifm1_for_diag_supp.f90
@@ -129,7 +129,8 @@ USE MODD_CH_PRODLOSSTOT_n
 USE MODD_CH_FLX_n,          ONLY: XCHFLX
 USE MODD_RAD_TRANSF
 USE MODD_DIAG_IN_RUN, ONLY: XCURRENT_ZON10M,XCURRENT_MER10M,           &
-                            XCURRENT_SFCO2, XCURRENT_SW, XCURRENT_LW
+                            XCURRENT_SFCO2,XCURRENT_SWD, XCURRENT_LWD, &
+                            XCURRENT_SWU, XCURRENT_LWU
 !
 USE MODD_DYN_n
 USE MODD_CURVCOR_n
@@ -970,10 +971,10 @@ IF (CSURF=='EXTE') THEN
     CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SFCO2)
   END IF
   !
-  IF(ANY(XCURRENT_SW/=XUNDEF))THEN
-    TZFIELD%CMNHNAME   = 'SW'
+  IF(ANY(XCURRENT_SWD/=XUNDEF))THEN
+    TZFIELD%CMNHNAME   = 'SWD'
     TZFIELD%CSTDNAME   = ''
-    TZFIELD%CLONGNAME  = 'SW'
+    TZFIELD%CLONGNAME  = 'SWD'
     TZFIELD%CUNITS     = 'W m-2'
     TZFIELD%CDIR       = 'XY'
     TZFIELD%CCOMMENT   = 'incoming ShortWave at the surface'
@@ -981,13 +982,27 @@ IF (CSURF=='EXTE') THEN
     TZFIELD%NTYPE      = TYPEREAL
     TZFIELD%NDIMS      = 2
     TZFIELD%LTIMEDEP   = .TRUE.
-    CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SW)
+    CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SWD)
   END IF
   !
-  IF(ANY(XCURRENT_LW/=XUNDEF))THEN
-    TZFIELD%CMNHNAME   = 'LW'
+  IF(ANY(XCURRENT_SWU/=XUNDEF))THEN
+    TZFIELD%CMNHNAME   = 'SWU'
     TZFIELD%CSTDNAME   = ''
-    TZFIELD%CLONGNAME  = 'LW'
+    TZFIELD%CLONGNAME  = 'SWU'
+    TZFIELD%CUNITS     = 'W m-2'
+    TZFIELD%CDIR       = 'XY'
+    TZFIELD%CCOMMENT   = 'outcoming ShortWave at the surface'
+    TZFIELD%NGRID      = 1
+    TZFIELD%NTYPE      = TYPEREAL
+    TZFIELD%NDIMS      = 2
+    TZFIELD%LTIMEDEP   = .TRUE.
+    CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SWU)
+  END IF
+!
+  IF(ANY(XCURRENT_LWD/=XUNDEF))THEN
+    TZFIELD%CMNHNAME   = 'LWD'
+    TZFIELD%CSTDNAME   = ''
+    TZFIELD%CLONGNAME  = 'LWD'
     TZFIELD%CUNITS     = 'W m-2'
     TZFIELD%CDIR       = 'XY'
     TZFIELD%CCOMMENT   = 'incoming LongWave at the surface'
@@ -995,7 +1010,21 @@ IF (CSURF=='EXTE') THEN
     TZFIELD%NTYPE      = TYPEREAL
     TZFIELD%NDIMS      = 2
     TZFIELD%LTIMEDEP   = .TRUE.
-    CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_LW)
+    CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_LWD)
+  END IF
+!
+  IF(ANY(XCURRENT_LWU/=XUNDEF))THEN
+    TZFIELD%CMNHNAME   = 'LWU'
+    TZFIELD%CSTDNAME   = ''
+    TZFIELD%CLONGNAME  = 'LWU'
+    TZFIELD%CUNITS     = 'W m-2'
+    TZFIELD%CDIR       = 'XY'
+    TZFIELD%CCOMMENT   = 'outcoming LongWave at the surface'
+    TZFIELD%NGRID      = 1
+    TZFIELD%NTYPE      = TYPEREAL
+    TZFIELD%NDIMS      = 2
+    TZFIELD%LTIMEDEP   = .TRUE.
+    CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_LWD)
   END IF
 END IF
 
diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90
index 781c44bd6b686b3e03527eb5b4c9f3835c49efa1..57dd9fa90f8adf4c93f135e78a62176bf3bbd3bd 100644
--- a/src/MNH/write_profilern.f90
+++ b/src/MNH/write_profilern.f90
@@ -154,7 +154,7 @@ IF (TPROFILER%Y(II)==XUNDEF) RETURN
 IKU = SIZE(TPROFILER%W,2)    !nbre de niveaux sur la verticale SIZE(TPROFILER%W,2)
 !
 IPROC = 24 + SIZE(TPROFILER%R,4) + SIZE(TPROFILER%SV,4)
-IF (LDIAG_IN_RUN) IPROC = IPROC + 13
+IF (LDIAG_IN_RUN) IPROC = IPROC + 15
 IF (LORILAM) IPROC = IPROC + JPMODE*3
 IF (LDUST) IPROC = IPROC + NMODE_DST*3
 IF (LDUST .OR. LORILAM .OR. LSALT) IPROC=IPROC+NAER
@@ -318,16 +318,29 @@ IF (LDIAG_IN_RUN) THEN
   ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%GFLUX(:,II)
   !
   JPROC = JPROC + 1
-  YTITLE   (JPROC) = 'SW'
+  YTITLE   (JPROC) = 'SWD'
   YUNIT    (JPROC) = 'W/m²'
   YCOMMENT (JPROC) = 'Downward short-wave radiation'
-  ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SW(:,II)
+  ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SWD(:,II)
   !
   JPROC = JPROC + 1
-  YTITLE   (JPROC) = 'LW'
+  YTITLE   (JPROC) = 'SWU'
+  YUNIT    (JPROC) = 'W/m²'
+  YCOMMENT (JPROC) = 'Upward short-wave radiation'
+  ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SWU(:,II)
+  !
+  JPROC = JPROC + 1
+  YTITLE   (JPROC) = 'LWD'
   YUNIT    (JPROC) = 'W/m²'
   YCOMMENT (JPROC) = 'Downward long-wave radiation'
-  ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%LW(:,II)
+  ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%LWD(:,II)
+  !
+  JPROC = JPROC + 1
+  YTITLE   (JPROC) = 'LWU'
+  YUNIT    (JPROC) = 'W/m²'
+  YCOMMENT (JPROC) = 'Upward long-wave radiation'
+  ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%LWU(:,II)
+  !
   !
   JPROC = JPROC + 1
   YTITLE   (JPROC) = 'TKE_DISS'
@@ -417,6 +430,14 @@ IF (SIZE(TPROFILER%SV,4)>=1) THEN
     YCOMMENT (JPROC) = ' ' 
     ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SV(:,IK,II,JSV)
   END DO
+ ! Passive pollutant  scalar variables
+  DO JSV = NSV_PPBEG,NSV_PPEND
+    JPROC = JPROC+1
+    WRITE (YTITLE(JPROC),FMT='(A2,I3.3)')   'Sv',JSV
+    YUNIT    (JPROC) = ''
+    YCOMMENT (JPROC) = ' '
+    ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%SV(:,IK,II,JSV)
+  END DO
  ! microphysical C2R2 scheme scalar variables
   DO JSV = NSV_C2R2BEG,NSV_C2R2END
     JPROC = JPROC+1
diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90
index bc1149a08a25575c3a5ff6c4d6e2113f81d80e82..150e01f789e45ea0e3c8ebfe01ce26b17986027b 100644
--- a/src/MNH/write_stationn.f90
+++ b/src/MNH/write_stationn.f90
@@ -152,7 +152,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 + 15
+IF (LDIAG_IN_RUN) IPROC = IPROC + 17
 IF (LORILAM) IPROC = IPROC + JPMODE*(3+NSOA+NCARB+NSP)
 IF (LDUST) IPROC = IPROC + NMODE_DST*3
 IF (LSALT) IPROC = IPROC + NMODE_SLT*3
@@ -279,12 +279,30 @@ IF (LDIAG_IN_RUN) THEN
   ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%GFLUX(:,II)
   !
   JPROC = JPROC + 1
-  YTITLE   (JPROC) = 'SW'   
+  YTITLE   (JPROC) = 'SWD'   
   YUNIT    (JPROC) = 'W/m2'  
   YCOMMENT (JPROC) = 'Downward short-wave radiation' 
-  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%SW(:,II)
-  !
+  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%SWD(:,II)
+  !       
+  JPROC = JPROC + 1
+  YTITLE   (JPROC) = 'SWU'   
+  YUNIT    (JPROC) = 'W/m2'  
+  YCOMMENT (JPROC) = 'Upward short-wave radiation' 
+  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%SWU(:,II)
+  !       
+  JPROC = JPROC + 1
+  YTITLE   (JPROC) = 'LWD'  
+  YUNIT    (JPROC) = 'W/m2' 
+  YCOMMENT (JPROC) = 'Downward long-wave radiation'
+  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%LWD(:,II)
+  !       
+  JPROC = JPROC + 1
+  YTITLE   (JPROC) = 'LWU'  
+  YUNIT    (JPROC) = 'W/m2' 
+  YCOMMENT (JPROC) = 'Upward long-wave radiation'
+  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%LWU(:,II)
   JPROC = JPROC + 1
+  !
   YTITLE   (JPROC) = 'SWDIR'   
   YUNIT    (JPROC) = 'W/m2'  
   YCOMMENT (JPROC) = 'Downward direct short-wave radiation' 
@@ -297,12 +315,6 @@ IF (LDIAG_IN_RUN) THEN
   ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%SWDIFF(:,II)  
   !       
   JPROC = JPROC + 1
-  YTITLE   (JPROC) = 'LW'  
-  YUNIT    (JPROC) = 'W/m2' 
-  YCOMMENT (JPROC) = 'Downward long-wave radiation'
-  ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%LW(:,II)
-  !       
-  JPROC = JPROC + 1
   YTITLE   (JPROC) = 'DSTAOD'  
   YUNIT    (JPROC) = 'm' 
   YCOMMENT (JPROC) = 'Dust aerosol optical depth'