From 86d647905ea5876733fa4d22c9e5fefd5e590a59 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 12 Oct 2020 16:27:07 +0200 Subject: [PATCH] Philippe 12/10/2020: IO: Write_les_n: remove HLES_AVG dummy argument and group all 4 calls --- src/MNH/modeln.f90 | 8 ++--- src/MNH/write_lesn.f90 | 68 ++++++++++++++++++++++-------------------- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 158ba786c..494ae993e 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -267,6 +267,7 @@ END MODULE MODI_MODEL_n ! P. Wautelet 13/09/2019: budget: simplify and modernize date/time management ! J. Escobar 27/09/2019: add missing report timing of RESOLVED_ELEC ! P. Wautelet 02-03/2020: use the new data structures and subroutines for budgets +! P. Wautelet 12/10/2020: Write_les_n: remove HLES_AVG dummy argument and group all 4 calls !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -367,6 +368,7 @@ USE MODE_MNH_TIMING USE MODE_MODELN_HANDLER USE MODE_MPPDB USE MODE_ONE_WAY_n +use mode_write_les_n, only: Write_les_n use mode_write_lfifmn_fordiachro_n, only: WRITE_LFIFMN_FORDIACHRO_n ! USE MODI_ADVECTION_METSV @@ -427,7 +429,6 @@ USE MODI_VISCOSITY USE MODI_WRITE_AIRCRAFT_BALLOON USE MODI_WRITE_DESFM_n USE MODI_WRITE_DIAG_SURF_ATM_N -USE MODI_WRITE_LES_n USE MODI_WRITE_LFIFM_n USE MODI_WRITE_PROFILER_n USE MODI_WRITE_SERIES_n @@ -2088,10 +2089,7 @@ IF (OEXIT) THEN CALL WRITE_AIRCRAFT_BALLOON(TDIAFILE) CALL WRITE_STATION_n(TDIAFILE) CALL WRITE_PROFILER_n(TDIAFILE) - CALL WRITE_LES_n(TDIAFILE,' ') - CALL WRITE_LES_n(TDIAFILE,'A') - CALL WRITE_LES_n(TDIAFILE,'E') - CALL WRITE_LES_n(TDIAFILE,'H') + call Write_les_n( tdiafile ) CALL MENU_DIACHRO(TDIAFILE,'END') CALL IO_File_close(TDIAFILE) END IF diff --git a/src/MNH/write_lesn.f90 b/src/MNH/write_lesn.f90 index ee1d6ec45..e789a14d7 100644 --- a/src/MNH/write_lesn.f90 +++ b/src/MNH/write_lesn.f90 @@ -1,34 +1,23 @@ -!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2020 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### -MODULE MODI_WRITE_LES_n +module mode_write_les_n !###################### -! -INTERFACE -! - SUBROUTINE WRITE_LES_n(TPDIAFILE,HLES_AVG) -! -USE MODD_IO, ONLY: TFILEDATA -! -TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE! file to write -CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages -! ! or normalizations -END SUBROUTINE WRITE_LES_n -! -END INTERFACE -! -END MODULE MODI_WRITE_LES_n -! ###################### - SUBROUTINE WRITE_LES_n(TPDIAFILE,HLES_AVG) -! ###################### +implicit none + +contains + +!################################### +subroutine Write_les_n( tpdiafile ) +!################################### ! ! -!!**** *WRITE_LES_n* writes the LES final diagnostics for model _n -!! +!!**** *WRITE_LES_n* writes the LES final diagnostics for model _n +!! !! !! PURPOSE !! ------- @@ -58,6 +47,7 @@ END MODULE MODI_WRITE_LES_n ! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O ! C. Lac 02/2019: add rain fraction as a LES diagnostic ! P. Wautelet 13/09/2019: budget: simplify and modernize date/time management +! P. Wautelet 12/10/2020: remove HLES_AVG dummy argument and group all 4 calls ! -------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -92,8 +82,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE! file to write -CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages -! ! or normalizations ! ! !* 0.2 declaration of local variables @@ -111,18 +99,16 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZAVG_PTS_ll REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZUND_PTS_ll REAL :: ZCART_PTS_ll INTEGER :: IMI ! Current model inde + +CHARACTER(LEN=1) :: HLES_AVG +character(len=1),DIMENSION(4) :: yles_avg +integer :: javg ! ! !------------------------------------------------------------------------------- ! IF (.NOT. LLES) RETURN ! -IF (HLES_AVG=='A' & - .AND. (XLES_TEMP_MEAN_START==XUNDEF .OR. XLES_TEMP_MEAN_END==XUNDEF)) RETURN -IF (HLES_AVG=='E' .AND. CLES_NORM_TYPE=='NONE' ) RETURN -IF (HLES_AVG=='H' .AND. (CLES_NORM_TYPE=='NONE' & - .OR. XLES_TEMP_MEAN_START/=XUNDEF .OR. XLES_TEMP_MEAN_END/=XUNDEF)) RETURN -! !* 1. Initializations ! --------------- ! @@ -262,6 +248,21 @@ IF (LLES_CS_MASK) THEN IMASK=IMASK+1 YSUBTITLE(IMASK) = " (cs3)" END IF + +yles_avg(1) = ' ' +yles_avg(2) = 'A' +yles_avg(3) = 'E' +yles_avg(4) = 'H' + +AVG: do javg = 1, 4 + +hles_avg = yles_avg(javg) + +IF (HLES_AVG=='A' & + .AND. (XLES_TEMP_MEAN_START==XUNDEF .OR. XLES_TEMP_MEAN_END==XUNDEF)) cycle +IF (HLES_AVG=='E' .AND. CLES_NORM_TYPE=='NONE' ) cycle +IF (HLES_AVG=='H' .AND. (CLES_NORM_TYPE=='NONE' & + .OR. XLES_TEMP_MEAN_START==XUNDEF .OR. XLES_TEMP_MEAN_END==XUNDEF)) cycle ! !* 2.0 averaging diagnostics ! --------------------- @@ -1479,6 +1480,7 @@ END IF ! IF (HLES_AVG==' ') CALL LES_SPEC_n(TPDIAFILE) ! +end do AVG !------------------------------------------------------------------------------- ! !* 7. deallocations @@ -1495,5 +1497,7 @@ IF (CLES_NORM_TYPE/='NONE' ) THEN DEALLOCATE(XLES_NORM_SV ) DEALLOCATE(XLES_NORM_P ) END IF -! -END SUBROUTINE WRITE_LES_n + +end subroutine Write_les_n + +end module mode_write_les_n -- GitLab