From b67db3a6a108edd92efab57c0882ed4a1ed06596 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Fri, 11 Oct 2019 16:03:47 +0200 Subject: [PATCH] Christine 11/10/2019: minor correction, unallocation of allocated radiation variable with CRAD=NONE for profilers and stations --- src/MNH/ground_paramn.f90 | 8 ++++---- src/MNH/ini_surfstationn.f90 | 4 ++++ src/MNH/profilern.f90 | 6 +++++- src/MNH/stationn.f90 | 7 +++++++ src/MNH/write_profilern.f90 | 5 ++++- src/MNH/write_stationn.f90 | 3 +++ 6 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90 index 717aa871b..497ffbb44 100644 --- a/src/MNH/ground_paramn.f90 +++ b/src/MNH/ground_paramn.f90 @@ -745,16 +745,16 @@ PSFCO2(:,:) = ZSFCO2(:,:) / XRHODREF(:,:,IKB) ! IF (LDIAG_IN_RUN) THEN ! + XCURRENT_SFCO2(:,:) = ZSFCO2(:,:) + XCURRENT_DSTAOD(:,:)=0.0 + XCURRENT_SLTAOD(:,:)=0.0 + IF (CRAD=='ECMW') THEN 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(:,:) - XCURRENT_DSTAOD(:,:)=0.0 - XCURRENT_SLTAOD(:,:)=0.0 - IF (CRAD=='ECMW') THEN DO JK=IKB,IKE IKRAD = JK - 1 DO JJ=IJB,IJE diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90 index 887733ede..e90f679a3 100644 --- a/src/MNH/ini_surfstationn.f90 +++ b/src/MNH/ini_surfstationn.f90 @@ -192,6 +192,8 @@ ALLOCATE(TSTATION%GFLUX (ISTORE,NUMBSTAT)) ALLOCATE(TSTATION%LEI (ISTORE,NUMBSTAT)) ALLOCATE(TSTATION%SWD (ISTORE,NUMBSTAT)) ALLOCATE(TSTATION%SWU (ISTORE,NUMBSTAT)) +ALLOCATE(TSTATION%SWDIR (ISTORE,NUMBSTAT)) +ALLOCATE(TSTATION%SWDIFF (ISTORE,NUMBSTAT)) ALLOCATE(TSTATION%LWD (ISTORE,NUMBSTAT)) ALLOCATE(TSTATION%LWU (ISTORE,NUMBSTAT)) ALLOCATE(TSTATION%DSTAOD (ISTORE,NUMBSTAT)) @@ -221,6 +223,8 @@ TSTATION%GFLUX = XUNDEF TSTATION%LEI = XUNDEF TSTATION%SWD = XUNDEF TSTATION%SWU = XUNDEF +TSTATION%SWDIR = XUNDEF +TSTATION%SWDIFF = XUNDEF TSTATION%LWD = XUNDEF TSTATION%LWU = XUNDEF TSTATION%DSTAOD = XUNDEF diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90 index a463a4ad7..5dd11eb7c 100644 --- a/src/MNH/profilern.f90 +++ b/src/MNH/profilern.f90 @@ -115,7 +115,7 @@ USE MODI_RADAR_RAIN_ICE USE MODI_LIDAR USE MODI_WATER_SUM USE MODI_GPS_ZENITH_GRID -USE MODD_PARAM_n, ONLY : CCLOUD +USE MODD_PARAM_n, ONLY : CCLOUD,CRAD ! ! IMPLICIT NONE @@ -538,10 +538,12 @@ 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 ) + IF (CRAD /= 'NONE') THEN 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 ) + END IF TPROFILER%TKE_DISS(IN,:,I) = PROFILER_INTERP(XCURRENT_TKE_DISS) ENDIF ENDIF @@ -570,10 +572,12 @@ IF (GSTORE) THEN CALL DISTRIBUTE_PROFILER(TPROFILER%LE (IN,I)) CALL DISTRIBUTE_PROFILER(TPROFILER%LEI (IN,I)) CALL DISTRIBUTE_PROFILER(TPROFILER%GFLUX (IN,I)) + IF (CRAD /= 'NONE') THEN 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 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 2fa1ab92c..f1d20df7e 100644 --- a/src/MNH/stationn.f90 +++ b/src/MNH/stationn.f90 @@ -101,6 +101,7 @@ USE MODD_CST USE MODD_GRID USE MODD_TIME USE MODD_CONF +USE MODD_PARAM_n, ONLY : CRAD ! USE MODE_DATETIME USE MODE_ll @@ -398,6 +399,7 @@ 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 ) + IF (CRAD /= 'NONE') THEN 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 ) @@ -405,6 +407,7 @@ IF (GSTORE) THEN TSTATION%SWDIR (IN,I) = STATION_INTERP_2D(XCURRENT_SWDIR ) TSTATION%SWDIFF(IN,I) = STATION_INTERP_2D(XCURRENT_SWDIFF) TSTATION%DSTAOD(IN,I) = STATION_INTERP_2D(XCURRENT_DSTAOD) + ENDIF TSTATION%SFCO2 (IN,I) = STATION_INTERP_2D(XCURRENT_SFCO2 ) ENDIF ELSE @@ -435,6 +438,7 @@ 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)) + IF (CRAD /= 'NONE') THEN 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)) @@ -442,6 +446,7 @@ IF (GSTORE) THEN 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%DSTAOD(IN,I) = XCURRENT_DSTAOD(TSTATION%I(I),TSTATION%J(I)) + ENDIF TSTATION%SFCO2 (IN,I) = XCURRENT_SFCO2(TSTATION%I(I),TSTATION%J(I)) ENDIF ENDIF @@ -486,6 +491,7 @@ IF (GSTORE) THEN CALL DISTRIBUTE_STATION(TSTATION%LE (IN,I)) CALL DISTRIBUTE_STATION(TSTATION%LEI (IN,I)) CALL DISTRIBUTE_STATION(TSTATION%GFLUX (IN,I)) + IF (CRAD /= 'NONE') THEN CALL DISTRIBUTE_STATION(TSTATION%SWD (IN,I)) CALL DISTRIBUTE_STATION(TSTATION%SWU (IN,I)) CALL DISTRIBUTE_STATION(TSTATION%LWD (IN,I)) @@ -493,6 +499,7 @@ IF (GSTORE) THEN CALL DISTRIBUTE_STATION(TSTATION%SWDIR (IN,I)) CALL DISTRIBUTE_STATION(TSTATION%SWDIFF (IN,I)) CALL DISTRIBUTE_STATION(TSTATION%DSTAOD (IN,I)) + END IF CALL DISTRIBUTE_STATION(TSTATION%SFCO2 (IN,I)) ENDIF ! diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90 index a011479a3..f5ca19940 100644 --- a/src/MNH/write_profilern.f90 +++ b/src/MNH/write_profilern.f90 @@ -82,8 +82,9 @@ USE MODD_LG, ONLY: CLGNAMES USE MODD_DUST, ONLY: CDUSTNAMES, LDUST, NMODE_DST USE MODD_SALT, ONLY: CSALTNAMES, LSALT USE MODD_NSV -USE MODD_RADIATIONS_n, ONLY:NAER +USE MODD_RADIATIONS_n, ONLY:NAER USE MODD_DIAG_IN_RUN +USE MODD_PARAM_n, ONLY: CRAD ! USE MODE_DUST_PSD USE MODE_AERO_PSD @@ -318,6 +319,7 @@ IF (LDIAG_IN_RUN) THEN YCOMMENT (JPROC) = 'Storage heat flux' ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%GFLUX(:,II) ! + IF (CRAD /= 'NONE') THEN JPROC = JPROC + 1 YTITLE (JPROC) = 'SWD' YUNIT (JPROC) = 'W m-2' @@ -342,6 +344,7 @@ IF (LDIAG_IN_RUN) THEN YCOMMENT (JPROC) = 'Upward long-wave radiation' ZWORK6 (1,1,IK,:,1,JPROC) = TPROFILER%LWU(:,II) ! + END IF ! JPROC = JPROC + 1 YTITLE (JPROC) = 'TKE_DISS' diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90 index 2a67c0fa1..48d810835 100644 --- a/src/MNH/write_stationn.f90 +++ b/src/MNH/write_stationn.f90 @@ -78,6 +78,7 @@ USE MODD_DUST, ONLY: CDUSTNAMES, LDUST, NMODE_DST USE MODD_SALT, ONLY: CSALTNAMES, LSALT, NMODE_SLT USE MODD_NSV USE MODD_DIAG_IN_RUN +USE MODD_PARAM_n, ONLY: CRAD ! USE MODD_DIM_n USE MODD_GRID_n @@ -278,6 +279,7 @@ IF (LDIAG_IN_RUN) THEN YCOMMENT (JPROC) = 'Storage heat flux' ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%GFLUX(:,II) ! + IF (CRAD /= 'NONE') THEN JPROC = JPROC + 1 YTITLE (JPROC) = 'SWD' YUNIT (JPROC) = 'W m-2' @@ -320,6 +322,7 @@ IF (LDIAG_IN_RUN) THEN YCOMMENT (JPROC) = 'Dust aerosol optical depth' ZWORK6 (1,1,1,:,1,JPROC) = TSTATION%DSTAOD(:,II) ! + END IF JPROC = JPROC + 1 YTITLE (JPROC) = 'LEI' YUNIT (JPROC) = 'W m-2' -- GitLab