From eaa321c5ae5148082ae4ebb655cb701304e4d4d8 Mon Sep 17 00:00:00 2001 From: Gaelle DELAUTIER <gaelle.delautier@meteo.fr> Date: Tue, 15 May 2018 14:31:35 +0200 Subject: [PATCH] C.Lac 15/5/2018 USPRES,VS_PRES,WS_PRES read/written only if CTEMP_SCHEME='LEFR --- src/MNH/read_field.f90 | 118 ++++++++++++++++++++++------------------- src/MNH/write_lfin.f90 | 41 +++++++------- 2 files changed, 87 insertions(+), 72 deletions(-) diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index 8551cd5f2..5036c52b9 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -271,6 +271,8 @@ USE MODD_PARAM_LIMA , ONLY: NMOD_CCN, LSCAV, LAERO_MASS, & NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM, LHHONI USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS +USE MODD_PARAM_n, ONLY: CSCONV +USE MODD_ADV_n USE MODD_PASPOL USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_SALT @@ -453,7 +455,7 @@ SELECT CASE(HGETTKET) ELSE CALL IO_READ_FIELD(TPINIFILE,'TKET',PTKET) END IF - IF (KMASDEV>50 .AND. (CCONF == 'RESTA')) THEN + IF (KMASDEV>50 .AND. (CCONF == 'RESTA') .AND. LSPLIT_CFL) THEN CALL IO_READ_FIELD(TPINIFILE,'TKEMS',PRTKEMS) END IF CASE('INIT') @@ -1119,58 +1121,62 @@ END IF ! IF (CCONF == 'RESTA') THEN - CALL IO_READ_FIELD(TPINIFILE,'US_PRES',PRUS_PRES) - CALL IO_READ_FIELD(TPINIFILE,'VS_PRES',PRVS_PRES) - CALL IO_READ_FIELD(TPINIFILE,'WS_PRES',PRWS_PRES) - CALL IO_READ_FIELD(TPINIFILE,'THS_CLD',PRTHS_CLD) - DO JRR = 1, SIZE(PRT,4) - SELECT CASE(JRR) - CASE (1) - CALL IO_READ_FIELD(TPINIFILE,'RVS_CLD',PRRS_CLD(:,:,:,JRR)) - CASE (2) - CALL IO_READ_FIELD(TPINIFILE,'RCS_CLD',PRRS_CLD(:,:,:,JRR)) - CASE (3) - CALL IO_READ_FIELD(TPINIFILE,'RRS_CLD',PRRS_CLD(:,:,:,JRR)) - CASE (4) - CALL IO_READ_FIELD(TPINIFILE,'RIS_CLD',PRRS_CLD(:,:,:,JRR)) - CASE (5) - CALL IO_READ_FIELD(TPINIFILE,'RSS_CLD',PRRS_CLD(:,:,:,JRR)) - CASE (6) - CALL IO_READ_FIELD(TPINIFILE,'RGS_CLD',PRRS_CLD(:,:,:,JRR)) - CASE (7) - CALL IO_READ_FIELD(TPINIFILE,'RHS_CLD',PRRS_CLD(:,:,:,JRR)) - CASE DEFAULT - CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_FIELD','PRT is too big') - END SELECT - END DO - DO JSV = NSV_C2R2BEG,NSV_C2R2END - IF (JSV == NSV_C2R2BEG ) THEN - TZFIELD%CMNHNAME = 'RSVS_CLD1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RSVS_CLD1' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RHS_CLD' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) - END IF - IF (JSV == NSV_C2R2BEG ) THEN - TZFIELD%CMNHNAME = 'RSVS_CLD2' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RSVS_CLD2' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RHS_CLD' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) - END IF - END DO + IF (CTEMP_SCHEME/='LEFR') THEN + CALL IO_READ_FIELD(TPINIFILE,'US_PRES',PRUS_PRES) + CALL IO_READ_FIELD(TPINIFILE,'VS_PRES',PRVS_PRES) + CALL IO_READ_FIELD(TPINIFILE,'WS_PRES',PRWS_PRES) + END IF + IF (LSPLIT_CFL) THEN + CALL IO_READ_FIELD(TPINIFILE,'THS_CLD',PRTHS_CLD) + DO JRR = 1, SIZE(PRT,4) + SELECT CASE(JRR) + CASE (1) + CALL IO_READ_FIELD(TPINIFILE,'RVS_CLD',PRRS_CLD(:,:,:,JRR)) + CASE (2) + CALL IO_READ_FIELD(TPINIFILE,'RCS_CLD',PRRS_CLD(:,:,:,JRR)) + CASE (3) + CALL IO_READ_FIELD(TPINIFILE,'RRS_CLD',PRRS_CLD(:,:,:,JRR)) + CASE (4) + CALL IO_READ_FIELD(TPINIFILE,'RIS_CLD',PRRS_CLD(:,:,:,JRR)) + CASE (5) + CALL IO_READ_FIELD(TPINIFILE,'RSS_CLD',PRRS_CLD(:,:,:,JRR)) + CASE (6) + CALL IO_READ_FIELD(TPINIFILE,'RGS_CLD',PRRS_CLD(:,:,:,JRR)) + CASE (7) + CALL IO_READ_FIELD(TPINIFILE,'RHS_CLD',PRRS_CLD(:,:,:,JRR)) + CASE DEFAULT + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_FIELD','PRT is too big') + END SELECT + END DO + DO JSV = NSV_C2R2BEG,NSV_C2R2END + IF (JSV == NSV_C2R2BEG ) THEN + TZFIELD%CMNHNAME = 'RSVS_CLD1' + TZFIELD%CSTDNAME = '' + TZFIELD%CLONGNAME = 'RSVS_CLD1' + TZFIELD%CUNITS = '1' + TZFIELD%CDIR = 'XY' + TZFIELD%CCOMMENT = 'X_Y_Z_RHS_CLD' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + TZFIELD%LTIMEDEP = .TRUE. + CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) + END IF + IF (JSV == NSV_C2R2BEG ) THEN + TZFIELD%CMNHNAME = 'RSVS_CLD2' + TZFIELD%CSTDNAME = '' + TZFIELD%CLONGNAME = 'RSVS_CLD2' + TZFIELD%CUNITS = '1' + TZFIELD%CDIR = 'XY' + TZFIELD%CCOMMENT = 'X_Y_Z_RHS_CLD' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + TZFIELD%LTIMEDEP = .TRUE. + CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) + END IF + END DO + END IF END IF ! !* 2.1 Time t-dt: @@ -1282,7 +1288,11 @@ END IF ! SELECT CASE(HGETTKET) CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'WTHVMF',PWTHVMF) + IF (CSCONV=='EDKF') THEN + CALL IO_READ_FIELD(TPINIFILE,'WTHVMF',PWTHVMF) + ELSE + PWTHVMF(:,:,:)=0 + ENDIF CASE('INIT') PWTHVMF(:,:,:)=0. END SELECT diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index 3056e0260..0ebe23290 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -228,7 +228,7 @@ USE MODD_CH_AEROSOL USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n USE MODD_PAST_FIELD_n -USE MODD_ADV_n, ONLY: CUVW_ADV_SCHEME,XRTKEMS,CTEMP_SCHEME +USE MODD_ADV_n, ONLY: CUVW_ADV_SCHEME,XRTKEMS,CTEMP_SCHEME,LSPLIT_CFL USE MODD_ELEC_FLASH ! USE MODD_PARAM_LIMA , ONLY: NMOD_CCN, LSCAV, LAERO_MASS, & @@ -613,7 +613,7 @@ END IF ! IF (CTURB /= 'NONE') THEN CALL IO_WRITE_FIELD(TPFILE,'TKET',XTKET) - IF (CPROGRAM == 'MESONH') CALL IO_WRITE_FIELD(TPFILE,'TKEMS',XRTKEMS) + IF (CPROGRAM == 'MESONH' .AND. LSPLIT_CFL) CALL IO_WRITE_FIELD(TPFILE,'TKEMS',XRTKEMS) END IF ! ! @@ -1419,7 +1419,7 @@ IF( CTURB /= 'NONE' .AND. LRMC01) THEN CALL IO_WRITE_FIELD(TPFILE,'SBL_DEPTH',XBL_DEPTH) END IF ! -IF( CTURB /= 'NONE' .AND. (CPROGRAM == 'MESONH' .OR. CPROGRAM == 'DIAG')) THEN +IF( CTURB /= 'NONE' .AND. CSCONV == 'EDKF' .AND.(CPROGRAM == 'MESONH' .OR. CPROGRAM == 'DIAG')) THEN CALL IO_WRITE_FIELD(TPFILE,'WTHVMF',XWTHVMF) END IF ! @@ -1438,23 +1438,27 @@ CALL IO_WRITE_FIELD(TPFILE,'EXNTOP', XEXNTOP) !* 1.6 Tendencies ! IF (CPROGRAM == 'MESONH') THEN - CALL IO_WRITE_FIELD(TPFILE,'US_PRES',XRUS_PRES) - CALL IO_WRITE_FIELD(TPFILE,'VS_PRES',XRVS_PRES) - CALL IO_WRITE_FIELD(TPFILE,'WS_PRES',XRWS_PRES) - CALL IO_WRITE_FIELD(TPFILE,'THS_CLD',XRTHS_CLD) -! - IF (NRR >=1) THEN - IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'RVS_CLD',XRRS_CLD(:,:,:,IDX_RVT)) - IF (LUSERC) CALL IO_WRITE_FIELD(TPFILE,'RCS_CLD',XRRS_CLD(:,:,:,IDX_RCT)) - IF (LUSERR) CALL IO_WRITE_FIELD(TPFILE,'RRS_CLD',XRRS_CLD(:,:,:,IDX_RRT)) - IF (LUSERI) CALL IO_WRITE_FIELD(TPFILE,'RIS_CLD',XRRS_CLD(:,:,:,IDX_RIT)) - IF (LUSERS) CALL IO_WRITE_FIELD(TPFILE,'RSS_CLD',XRRS_CLD(:,:,:,IDX_RST)) - IF (LUSERG) CALL IO_WRITE_FIELD(TPFILE,'RGS_CLD',XRRS_CLD(:,:,:,IDX_RGT)) - IF (LUSERH) CALL IO_WRITE_FIELD(TPFILE,'RHS_CLD',XRRS_CLD(:,:,:,IDX_RHT)) - END IF + IF (CTEMP_SCHEME/='LEFR') THEN + CALL IO_WRITE_FIELD(TPFILE,'US_PRES',XRUS_PRES) + CALL IO_WRITE_FIELD(TPFILE,'VS_PRES',XRVS_PRES) + CALL IO_WRITE_FIELD(TPFILE,'WS_PRES',XRWS_PRES) + END IF + IF (LSPLIT_CFL) THEN + CALL IO_WRITE_FIELD(TPFILE,'THS_CLD',XRTHS_CLD) +! + IF (NRR >=1) THEN + IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'RVS_CLD',XRRS_CLD(:,:,:,IDX_RVT)) + IF (LUSERC) CALL IO_WRITE_FIELD(TPFILE,'RCS_CLD',XRRS_CLD(:,:,:,IDX_RCT)) + IF (LUSERR) CALL IO_WRITE_FIELD(TPFILE,'RRS_CLD',XRRS_CLD(:,:,:,IDX_RRT)) + IF (LUSERI) CALL IO_WRITE_FIELD(TPFILE,'RIS_CLD',XRRS_CLD(:,:,:,IDX_RIT)) + IF (LUSERS) CALL IO_WRITE_FIELD(TPFILE,'RSS_CLD',XRRS_CLD(:,:,:,IDX_RST)) + IF (LUSERG) CALL IO_WRITE_FIELD(TPFILE,'RGS_CLD',XRRS_CLD(:,:,:,IDX_RGT)) + IF (LUSERH) CALL IO_WRITE_FIELD(TPFILE,'RHS_CLD',XRRS_CLD(:,:,:,IDX_RHT)) + END IF + END IF END IF ! -! +!IF (LSPLIT_CFL) THEN ! IF (NSV >=1) THEN ! DO JSV = NSV_C2R2BEG,NSV_C2R2END ! IF (JSV == NSV_C2R2BEG ) THEN @@ -1485,6 +1489,7 @@ END IF ! END IF ! END DO ! END IF +!ENDIF ! !* 1.8 Diagnostic variables related to the radiations ! -- GitLab