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