Skip to content
Snippets Groups Projects
Commit 04c12ac2 authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 22/09/2023: sensors: minor improvements

parent 5a6c47be
No related branches found
No related tags found
No related merge requests found
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
MODULE MODE_AIRCRAFT_BALLOON_EVOL MODULE MODE_AIRCRAFT_BALLOON_EVOL
! ########################## ! ##########################
USE MODD_PRECISION, ONLY: MNHREAL
USE MODE_MSG USE MODE_MSG
IMPLICIT NONE IMPLICIT NONE
...@@ -43,6 +45,8 @@ PUBLIC :: AIRCRAFT_COMPUTE_POSITION ...@@ -43,6 +45,8 @@ PUBLIC :: AIRCRAFT_COMPUTE_POSITION
PUBLIC :: FLYER_GET_RANK_MODEL_ISCRASHED PUBLIC :: FLYER_GET_RANK_MODEL_ISCRASHED
REAL, PARAMETER :: XTIMETHRESH = 1.E-8_MNHREAL
CONTAINS CONTAINS
! ######################################################## ! ########################################################
SUBROUTINE AIRCRAFT_BALLOON_EVOL(PTSTEP, & SUBROUTINE AIRCRAFT_BALLOON_EVOL(PTSTEP, &
...@@ -299,7 +303,7 @@ SELECT TYPE ( TPFLYER ) ...@@ -299,7 +303,7 @@ SELECT TYPE ( TPFLYER )
! Launch? ! Launch?
LAUNCH: IF ( .NOT. TPFLYER%LFLY .AND. .NOT. TPFLYER%LCRASH .AND. TPFLYER%NMODEL == IMI ) THEN LAUNCH: IF ( .NOT. TPFLYER%LFLY .AND. .NOT. TPFLYER%LCRASH .AND. TPFLYER%NMODEL == IMI ) THEN
! Check if it is launchtime ! Check if it is launchtime
LAUNCHTIME: IF ( ( TDTCUR - TPFLYER%TLAUNCH ) >= -1.e-10 ) THEN LAUNCHTIME: IF ( ( TDTCUR - TPFLYER%TLAUNCH ) >= -XTIMETHRESH ) THEN
TPFLYER%LFLY = .TRUE. TPFLYER%LFLY = .TRUE.
GLAUNCH = .TRUE. GLAUNCH = .TRUE.
...@@ -315,7 +319,7 @@ SELECT TYPE ( TPFLYER ) ...@@ -315,7 +319,7 @@ SELECT TYPE ( TPFLYER )
! Check if it is time to store data. This has also to be checked if the balloon ! 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) ! is not yet launched or is crashed (data is also written in these cases, but with default values)
IF ( TPFLYER%NMODEL == IMI .AND. & 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? !Do we have to store balloon data?
TPFLYER%LSTORE = TPFLYER%TFLYER_TIME%STORESTEP_CHECK_AND_SET( ISTORE ) TPFLYER%LSTORE = TPFLYER%TFLYER_TIME%STORESTEP_CHECK_AND_SET( ISTORE )
IF ( TPFLYER%LSTORE ) TPFLYER%NSTORE_CUR = ISTORE IF ( TPFLYER%LSTORE ) TPFLYER%NSTORE_CUR = ISTORE
...@@ -323,7 +327,7 @@ SELECT TYPE ( TPFLYER ) ...@@ -323,7 +327,7 @@ SELECT TYPE ( TPFLYER )
! In flight ! In flight
INFLIGHTONMODEL: IF ( TPFLYER%LFLY .AND. .NOT. TPFLYER%LCRASH .AND. TPFLYER%NMODEL == IMI & 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 ISOWNERBAL: IF ( TPFLYER%NRANK_CUR == ISP ) THEN
CALL FLYER_INTERP_TO_MASSPOINTS() CALL FLYER_INTERP_TO_MASSPOINTS()
......
...@@ -54,6 +54,7 @@ CONTAINS ...@@ -54,6 +54,7 @@ CONTAINS
TPSENSOR%XLWCZ(:,KSTORE_ID) = 0. TPSENSOR%XLWCZ(:,KSTORE_ID) = 0.
TPSENSOR%XIWCZ(:,KSTORE_ID) = 0. TPSENSOR%XIWCZ(:,KSTORE_ID) = 0.
!TODO: add ICE4?
IF ( CCLOUD == "LIMA" .OR. CCLOUD=="ICE3" ) THEN IF ( CCLOUD == "LIMA" .OR. CCLOUD=="ICE3" ) THEN
TPSENSOR%XLWCZ(:,KSTORE_ID) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( (PR(:,:,:,2)+PR(:,:,:,3) ) * PRHODREF(:,:,:) ) 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(:,:,:) ) TPSENSOR%XIWCZ(:,KSTORE_ID) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( (PR(:,:,:,4)+PR(:,:,:,5)+PR(:,:,:,6)) * PRHODREF(:,:,:) )
...@@ -136,6 +137,7 @@ CONTAINS ...@@ -136,6 +137,7 @@ CONTAINS
TPSENSOR%XCRARE (:,KSTORE_ID) = 0. TPSENSOR%XCRARE (:,KSTORE_ID) = 0.
TPSENSOR%XCRARE_ATT(:,KSTORE_ID) = 0. TPSENSOR%XCRARE_ATT(:,KSTORE_ID) = 0.
!TODO: add ICE4?
IF ( CCLOUD == "LIMA" .OR. CCLOUD=="ICE3" ) THEN IF ( CCLOUD == "LIMA" .OR. CCLOUD=="ICE3" ) THEN
ZTEMPZ(:) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( PTH_EXN(:,:,:) ) ZTEMPZ(:) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( PTH_EXN(:,:,:) )
ZRHODREFZ(:) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( PRHODREF(:,:,:) ) ZRHODREFZ(:) = TPSENSOR%INTERP_HOR_FROM_MASSPOINT( PRHODREF(:,:,:) )
...@@ -519,7 +521,6 @@ CONTAINS ...@@ -519,7 +521,6 @@ CONTAINS
SUBROUTINE ADD_ORILAM_DATA( TPSENSOR, KLEVEL, KSTORE ) SUBROUTINE ADD_ORILAM_DATA( TPSENSOR, KLEVEL, KSTORE )
USE MODD_CH_AEROSOL USE MODD_CH_AEROSOL
USE MODD_CONF_N, ONLY: NRR USE MODD_CONF_N, ONLY: NRR
USE MODD_CH_AEROSOL, ONLY: NCARB, NSOA, NSP
USE MODD_CST, ONLY: XP00, XCPD, XRD, XRV USE MODD_CST, ONLY: XP00, XCPD, XRD, XRV
USE MODD_NSV, ONLY: NSV_AER, NSV_AERBEG, NSV_AEREND USE MODD_NSV, ONLY: NSV_AER, NSV_AERBEG, NSV_AEREND
......
...@@ -239,10 +239,8 @@ IMI = GET_CURRENT_MODEL_INDEX() ...@@ -239,10 +239,8 @@ IMI = GET_CURRENT_MODEL_INDEX()
IRR = SIZE( tpflyer%xr, 3 ) 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 ( IMI /= TPFLYER%NMODEL ) RETURN
IF ( ALL( TPFLYER%XX == XUNDEF ) ) RETURN
! !
IKU = SIZE(TPFLYER%XRTZ,1) !number of vertical levels IKU = SIZE(TPFLYER%XRTZ,1) !number of vertical levels
! !
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment