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'