From 04c12ac22ae756b620e2afaab8e03fb96db2f50f Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 22 Sep 2023 10:39:22 +0200 Subject: [PATCH] Philippe 22/09/2023: sensors: minor improvements --- src/MNH/aircraft_balloon_evol.f90 | 10 +++++++--- src/MNH/mode_sensor.f90 | 3 ++- src/MNH/write_aircraft_balloon.f90 | 4 +--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index e37f97c5b..6d2f5a80b 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -31,6 +31,8 @@ MODULE MODE_AIRCRAFT_BALLOON_EVOL ! ########################## +USE MODD_PRECISION, ONLY: MNHREAL + USE MODE_MSG IMPLICIT NONE @@ -43,6 +45,8 @@ PUBLIC :: AIRCRAFT_COMPUTE_POSITION PUBLIC :: FLYER_GET_RANK_MODEL_ISCRASHED +REAL, PARAMETER :: XTIMETHRESH = 1.E-8_MNHREAL + CONTAINS ! ######################################################## SUBROUTINE AIRCRAFT_BALLOON_EVOL(PTSTEP, & @@ -299,7 +303,7 @@ SELECT TYPE ( TPFLYER ) ! Launch? LAUNCH: IF ( .NOT. TPFLYER%LFLY .AND. .NOT. TPFLYER%LCRASH .AND. TPFLYER%NMODEL == IMI ) THEN ! Check if it is launchtime - LAUNCHTIME: IF ( ( TDTCUR - TPFLYER%TLAUNCH ) >= -1.e-10 ) THEN + LAUNCHTIME: IF ( ( TDTCUR - TPFLYER%TLAUNCH ) >= -XTIMETHRESH ) THEN TPFLYER%LFLY = .TRUE. GLAUNCH = .TRUE. @@ -315,7 +319,7 @@ SELECT TYPE ( TPFLYER ) ! Check if it is time to store data. This has also to be checked if the balloon ! is not yet launched or is crashed (data is also written in these cases, but with default values) IF ( TPFLYER%NMODEL == IMI .AND. & - ( .NOT. TPFLYER%LFLY .OR. TPFLYER%LCRASH .OR. ABS( TPFLYER%TPOS_CUR - TDTCUR ) < 1.e-8 ) ) THEN + ( .NOT. TPFLYER%LFLY .OR. TPFLYER%LCRASH .OR. ABS( TPFLYER%TPOS_CUR - TDTCUR ) < XTIMETHRESH ) ) THEN !Do we have to store balloon data? TPFLYER%LSTORE = TPFLYER%TFLYER_TIME%STORESTEP_CHECK_AND_SET( ISTORE ) IF ( TPFLYER%LSTORE ) TPFLYER%NSTORE_CUR = ISTORE @@ -323,7 +327,7 @@ SELECT TYPE ( TPFLYER ) ! In flight INFLIGHTONMODEL: IF ( TPFLYER%LFLY .AND. .NOT. TPFLYER%LCRASH .AND. TPFLYER%NMODEL == IMI & - .AND. ABS( TPFLYER%TPOS_CUR - TDTCUR ) < 1.e-8 ) THEN + .AND. ABS( TPFLYER%TPOS_CUR - TDTCUR ) < XTIMETHRESH ) THEN ISOWNERBAL: IF ( TPFLYER%NRANK_CUR == ISP ) THEN CALL FLYER_INTERP_TO_MASSPOINTS() diff --git a/src/MNH/mode_sensor.f90 b/src/MNH/mode_sensor.f90 index bd6c86b3b..e3ff8bea0 100644 --- a/src/MNH/mode_sensor.f90 +++ b/src/MNH/mode_sensor.f90 @@ -54,6 +54,7 @@ CONTAINS TPSENSOR%XLWCZ(:,KSTORE_ID) = 0. TPSENSOR%XIWCZ(:,KSTORE_ID) = 0. + !TODO: add ICE4? IF ( CCLOUD == "LIMA" .OR. CCLOUD=="ICE3" ) THEN TPSENSOR%XLWCZ(:,KSTORE_ID) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( (PR(:,:,:,2)+PR(:,:,:,3) ) * PRHODREF(:,:,:) ) TPSENSOR%XIWCZ(:,KSTORE_ID) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( (PR(:,:,:,4)+PR(:,:,:,5)+PR(:,:,:,6)) * PRHODREF(:,:,:) ) @@ -136,6 +137,7 @@ CONTAINS TPSENSOR%XCRARE (:,KSTORE_ID) = 0. TPSENSOR%XCRARE_ATT(:,KSTORE_ID) = 0. + !TODO: add ICE4? IF ( CCLOUD == "LIMA" .OR. CCLOUD=="ICE3" ) THEN ZTEMPZ(:) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( PTH_EXN(:,:,:) ) ZRHODREFZ(:) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( PRHODREF(:,:,:) ) @@ -519,7 +521,6 @@ CONTAINS SUBROUTINE ADD_ORILAM_DATA( TPSENSOR, KLEVEL, KSTORE ) USE MODD_CH_AEROSOL USE MODD_CONF_N, ONLY: NRR - USE MODD_CH_AEROSOL, ONLY: NCARB, NSOA, NSP USE MODD_CST, ONLY: XP00, XCPD, XRD, XRV USE MODD_NSV, ONLY: NSV_AER, NSV_AERBEG, NSV_AEREND diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90 index 61be44dab..41335da49 100644 --- a/src/MNH/write_aircraft_balloon.f90 +++ b/src/MNH/write_aircraft_balloon.f90 @@ -239,10 +239,8 @@ IMI = GET_CURRENT_MODEL_INDEX() IRR = SIZE( tpflyer%xr, 3 ) -IF (TPFLYER%NMODEL==0) RETURN -IF (ALL(TPFLYER%XX==XUNDEF)) RETURN -IF (COUNT(TPFLYER%XX/=XUNDEF)<=1) RETURN IF ( IMI /= TPFLYER%NMODEL ) RETURN +IF ( ALL( TPFLYER%XX == XUNDEF ) ) RETURN ! IKU = SIZE(TPFLYER%XRTZ,1) !number of vertical levels ! -- GitLab