From 53358fe10c83ac9b658726c44317f0ea395166e6 Mon Sep 17 00:00:00 2001 From: VIE Benoit <vie@sxphynh> Date: Tue, 28 Nov 2023 18:09:37 +0100 Subject: [PATCH] add P in aircraft outputs --- src/MNH/aircraft_balloon_evol.f90 | 2 ++ src/MNH/modd_sensor.f90 | 7 +++++++ src/MNH/profilern.f90 | 1 + src/MNH/write_aircraft_balloon.f90 | 3 ++- 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index 03cd50c1c..786aa2165 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -961,6 +961,8 @@ DO JLOOP=1,SIZE(PSV,4) TPFLYER%XSVZ (:,ISTORE,JLOOP) = TPFLYER%INTERP_HOR_FROM_MASSPOINT( PSV(:,:,:,JLOOP) ) END DO +TPFLYER%XPZ (:,ISTORE) = TPFLYER%INTERP_HOR_FROM_MASSPOINT( PP(:,:,:) ) + IF (CCLOUD=="LIMA") THEN ELSE IF ( CCLOUD=="ICE3" .OR. CCLOUD=="ICE4" ) THEN TPFLYER%XCIZ (:,ISTORE) = TPFLYER%INTERP_HOR_FROM_MASSPOINT( PCIT(:,:,:) ) diff --git a/src/MNH/modd_sensor.f90 b/src/MNH/modd_sensor.f90 index 7e5573bc4..19df53811 100644 --- a/src/MNH/modd_sensor.f90 +++ b/src/MNH/modd_sensor.f90 @@ -110,6 +110,7 @@ MODULE MODD_SENSOR REAL, DIMENSION(:,:), ALLOCATABLE :: XRHOD ! density of dry air REAL, DIMENSION(:,:), ALLOCATABLE :: XCIZ ! Ice concentration + REAL, DIMENSION(:,:), ALLOCATABLE :: XPZ ! Pressure REAL, DIMENSION(:,:), ALLOCATABLE :: XTZ ! Temperature REAL, DIMENSION(:,:,:), ALLOCATABLE :: XSVZ ! Scalar variables REAL, DIMENSION(:,:), ALLOCATABLE :: XIWCZ ! ice water content @@ -236,6 +237,7 @@ MODULE MODD_SENSOR ALLOCATE( TPSENSOR%XCIZ (0, 0) ) END IF + ALLOCATE( TPSENSOR%XPZ (IKU, KSTORE) ) ; IVARSIZE = IVARSIZE + IKU ALLOCATE( TPSENSOR%XTZ (IKU, KSTORE) ) ; IVARSIZE = IVARSIZE + IKU ALLOCATE( TPSENSOR%XIWCZ (IKU, KSTORE) ) ; IVARSIZE = IVARSIZE + IKU ALLOCATE( TPSENSOR%XLWCZ (IKU, KSTORE) ) ; IVARSIZE = IVARSIZE + IKU @@ -243,6 +245,7 @@ MODULE MODD_SENSOR ALLOCATE( TPSENSOR%XCRARE_ATT(IKU, KSTORE) ) ; IVARSIZE = IVARSIZE + IKU ELSE ALLOCATE( TPSENSOR%XSVZ (0, 0, 0) ) + ALLOCATE( TPSENSOR%XPZ (0, 0) ) ALLOCATE( TPSENSOR%XTZ (0, 0) ) ALLOCATE( TPSENSOR%XRHOD (0, 0) ) ALLOCATE( TPSENSOR%XCIZ (0, 0) ) @@ -265,6 +268,7 @@ MODULE MODD_SENSOR TPSENSOR%XSV (:,:,:) = XUNDEF TPSENSOR%XTSRAD (:) = XUNDEF_SFX TPSENSOR%XRHOD_SENSOR(:) = XNEGUNDEF + TPSENSOR%XPZ (:,:) = XUNDEF TPSENSOR%XTZ (:,:) = XUNDEF TPSENSOR%XRHOD (:,:) = XNEGUNDEF TPSENSOR%XCIZ (:,:) = XUNDEF @@ -301,6 +305,7 @@ MODULE MODD_SENSOR DEALLOCATE( TPSENSOR%XSV ) DEALLOCATE( TPSENSOR%XTSRAD ) DEALLOCATE( TPSENSOR%XRHOD_SENSOR ) + DEALLOCATE( TPSENSOR%XPZ ) DEALLOCATE( TPSENSOR%XTZ ) DEALLOCATE( TPSENSOR%XRHOD ) DEALLOCATE( TPSENSOR%XCIZ ) @@ -1013,6 +1018,7 @@ MODULE MODD_SENSOR PBUFFER(KPOS:KPOS+ISTORES-1) = TPSENSOR%XRHOD_SENSOR(1:ISTORES) ; KPOS = KPOS + ISTORES IF ( SIZE( TPSENSOR%XRHOD ) > 0 ) THEN + PBUFFER(KPOS:KPOS+IKU*ISTORES-1) = RESHAPE( TPSENSOR%XPZ (:,1:ISTORES), [IKU*ISTORES] ) ; KPOS = KPOS + IKU * ISTORES PBUFFER(KPOS:KPOS+IKU*ISTORES-1) = RESHAPE( TPSENSOR%XTZ (:,1:ISTORES), [IKU*ISTORES] ) ; KPOS = KPOS + IKU * ISTORES PBUFFER(KPOS:KPOS+IKU*ISTORES-1) = RESHAPE( TPSENSOR%XRHOD (:,1:ISTORES), [IKU*ISTORES] ) ; KPOS = KPOS + IKU * ISTORES IF ( CCLOUD(1:3) == 'ICE') THEN @@ -1138,6 +1144,7 @@ MODULE MODD_SENSOR TPSENSOR%XRHOD_SENSOR(1:KSTORE) = PBUFFER(KPOS:KPOS+KSTORE-1) ; KPOS = KPOS + KSTORE IF ( SIZE( TPSENSOR%XRHOD ) > 0 ) THEN + TPSENSOR%XPZ (:,1:KSTORE) = RESHAPE( PBUFFER(KPOS:KPOS+IKU*KSTORE-1), [ IKU, KSTORE ] ) ; KPOS = KPOS + IKU * KSTORE TPSENSOR%XTZ (:,1:KSTORE) = RESHAPE( PBUFFER(KPOS:KPOS+IKU*KSTORE-1), [ IKU, KSTORE ] ) ; KPOS = KPOS + IKU * KSTORE TPSENSOR%XRHOD (:,1:KSTORE) = RESHAPE( PBUFFER(KPOS:KPOS+IKU*KSTORE-1), [ IKU, KSTORE ] ) ; KPOS = KPOS + IKU * KSTORE IF ( CCLOUD(1:3) == 'ICE' ) THEN diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90 index 9cb0edfd7..ba806cab9 100644 --- a/src/MNH/profilern.f90 +++ b/src/MNH/profilern.f90 @@ -333,6 +333,7 @@ PROFILER: DO JP = 1, NUMBPROFILER_LOC TPROFILERS(JP)%XTH (:,IN) = TPROFILERS(JP)%INTERP_HOR_FROM_MASSPOINT( PTH ) TPROFILERS(JP)%XT (:,IN) = TPROFILERS(JP)%INTERP_HOR_FROM_MASSPOINT( ZTEMP ) TPROFILERS(JP)%XTZ (:,IN) = TPROFILERS(JP)%INTERP_HOR_FROM_MASSPOINT( ZTEMP ) + TPROFILERS(JP)%XPZ (:,IN) = TPROFILERS(JP)%INTERP_HOR_FROM_MASSPOINT( PP ) TPROFILERS(JP)%XTHV (:,IN) = TPROFILERS(JP)%INTERP_HOR_FROM_MASSPOINT( ZTHV ) IF ( CCLOUD == 'C2R2' .OR. CCLOUD == 'KHKO' ) & TPROFILERS(JP)%XVISIGUL(:,IN) = TPROFILERS(JP)%INTERP_HOR_FROM_MASSPOINT( ZVISIGUL ) diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90 index 0c8c59b4b..56b1f20b3 100644 --- a/src/MNH/write_aircraft_balloon.f90 +++ b/src/MNH/write_aircraft_balloon.f90 @@ -431,7 +431,7 @@ call Sensor_write_workarrays_deallocate( ) !---------------------------------------------------------------------------- !Treat vertical profiles -IPROCZ = 10 + IRR + NSV +IPROCZ = 11 + IRR + NSV IF ( CCLOUD(1:3) == 'ICE' ) IPROCZ = IPROCZ + 1 call Sensor_write_workarrays_allocate( iku, istore, iprocz ) @@ -449,6 +449,7 @@ if ( irr >= 7 ) call Add_profile( 'Rh', '1D Hail mixing ratio', 'k call Add_profile( 'FF', 'Horizontal wind', 'm s-1', tpflyer%xffz(:,:) ) call Add_profile( 'T', 'Temperature', 'K', tpflyer%xtz(:,:) ) +call Add_profile( 'P', 'Pressure', 'Pa', tpflyer%xpz(:,:) ) call Add_profile( 'IWC', 'Ice water content', 'kg m-3', tpflyer%xiwcz(:,:) ) call Add_profile( 'LWC', 'Liquid water content', 'kg m-3', tpflyer%xlwcz(:,:) ) -- GitLab