From 8a66ffee4ad6a90224eab75931fd2e3d344dfec9 Mon Sep 17 00:00:00 2001
From: Gaelle Tanguy <gaelle.tanguy@meteo.fr>
Date: Fri, 21 Nov 2014 11:06:10 +0000
Subject: [PATCH] P.Tulet 11/2014 : add accumulated moles of aqueous species
 that fall at the surface

---
 src/MNH/ini_modeln.f90  |  3 +++
 src/MNH/modd_ch_phn.f90 |  6 ++++++
 src/MNH/modeln.f90      | 15 ++++++++++++++-
 src/MNH/write_lfin.f90  | 11 +++++++++++
 4 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index 363d5f4ee..c812e6749 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -258,6 +258,7 @@ END MODULE MODI_INI_MODEL_n
 !!                   June  2011  (P.Aumond) Drag of the vegetation  
 !!                                         + Mean fields
 !!                   July  2013  (Bosseur & Filippi) Adds Forefire
+!!       P. Tulet      Nov 2014 accumulated moles of aqueous species that fall at the surface   
 !---------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -1415,6 +1416,8 @@ IF ( (LUSECHAQ.AND.LCH_PH) .AND.  &
   IF (NRRL==2) THEN
     ALLOCATE(XPHR(IIU,IJU,IKU))
   ENDIF
+  ALLOCATE(XACPRAQ(IIU,IJU,NSV_CHAC/2))
+  XACPRAQ(:,:,:) = 0.
 ENDIF
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/modd_ch_phn.f90 b/src/MNH/modd_ch_phn.f90
index 1a57afbad..8e5f6230b 100644
--- a/src/MNH/modd_ch_phn.f90
+++ b/src/MNH/modd_ch_phn.f90
@@ -27,6 +27,7 @@
 !!    MODIFICATIONS
 !!    -------------
 !!    Original 01/06/07
+!!       P. Tulet      Nov 2014 accumulated moles of aqueous species that fall at the surface   
 !!
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
@@ -43,6 +44,8 @@ TYPE CH_PH_t
 !
   REAL, POINTER, DIMENSION(:,:,:) :: XPHC ! cloud
   REAL, POINTER, DIMENSION(:,:,:) :: XPHR ! rain
+  REAL, POINTER, DIMENSION(:,:,:) :: XACPRAQ ! sum of aqueous chemical species fall at the surface by rain
+                                             ! in moles i / m2 (ratio with XACPRR for concentration
 !
 !-----------------------------------------------------------------------------
 END TYPE CH_PH_t
@@ -51,6 +54,7 @@ TYPE(CH_PH_t), DIMENSION(JPMODELMAX), TARGET, SAVE :: CH_PH_MODEL
 
 REAL, POINTER, DIMENSION(:,:,:) :: XPHC=>NULL()
 REAL, POINTER, DIMENSION(:,:,:) :: XPHR=>NULL()
+REAL, POINTER, DIMENSION(:,:,:) :: XACPRAQ=>NULL()
 
 CONTAINS
 
@@ -60,10 +64,12 @@ INTEGER, INTENT(IN) :: KFROM, KTO
 ! Save current state for allocated arrays
 CH_PH_MODEL(KFROM)%XPHC=>XPHC
 CH_PH_MODEL(KFROM)%XPHR=>XPHR
+CH_PH_MODEL(KFROM)%XACPRAQ=>XACPRAQ
 !
 ! Current model is set to model KTO
 XPHC=>CH_PH_MODEL(KTO)%XPHC
 XPHR=>CH_PH_MODEL(KTO)%XPHR
+XACPRAQ=>CH_PH_MODEL(KTO)%XACPRAQ
 
 END SUBROUTINE CH_PH_GOTO_MODEL
 
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index b3fa8ef60..c3255dbaf 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -226,6 +226,7 @@ END MODULE MODI_MODEL_n
 !!                   April 2011 (C.Lac) : Remove instant M 
 !!                   April 2011 (C.Lac, V.Masson) : Time splitting for advection
 !!      J.Escobar 21/03/2013: for HALOK comment all NHALO=1 test
+!!       P. Tulet      Nov 2014 accumulated moles of aqueous species that fall at the surface   
 !-------------------------------------------------------------------------------
 !
 !*       0.     DECLARATIONS
@@ -292,6 +293,8 @@ USE MODD_SERIES_n, ONLY: NFREQSERIES
 USE MODD_CH_AERO_n,    ONLY: XSOLORG, XMI
 USE MODD_CH_MNHC_n,    ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, &
                              LCH_INIT_FIELD
+USE MODD_CH_PH_n
+USE MODD_CST, ONLY: XMD
 USE MODD_NUDGING_n
 USE MODD_PARAM_MFSHALL_n
 USE MODD_ELEC_DESCR
@@ -1673,10 +1676,20 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN
 !
   IF (CCLOUD /= 'REVE' ) THEN
     XACPRR = XACPRR + XINPRR * XTSTEP
+      IF (LUSECHAQ) THEN
+      DO JSV=1,NSV_CHAC/2
+      WHERE(XRT(:,:,IKB,3) .GT. 0.)
+      XACPRAQ(:,:,JSV) = XACPRAQ(:,:,JSV) + &
+              (XSVT(:,:,IKB,JSV+NSV_CHACBEG+NSV_CHAC/2-1))/ (XMD*XRT(:,:,IKB,3))*& ! moles i  / kg eau
+               XINPRR(:,:) * XTSTEP ! moles i / m2
+      END WHERE
+      END DO
+      END IF
     IF ((CCLOUD(1:3) == 'ICE' .AND. LSEDIC ) .OR.                       &
         ((CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') &
-                              .AND. LSEDC  )      )                     &
+                              .AND. LSEDC  )      )   THEN                  
       XACPRC = XACPRC + XINPRC * XTSTEP
+    END IF
     IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5') THEN
       XACPRS = XACPRS + XINPRS * XTSTEP
       XACPRG = XACPRG + XINPRG * XTSTEP
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index 2709bb58e..478920477 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -155,6 +155,7 @@ END MODULE MODI_WRITE_LFIFM_n
 !!       Pialat/Tulet  15/02/2012 add ForeFire variables
 !!       J. Escobar    Mars 2014 , missing YDIR="XY" in 1.6 for tendencies fields 
 !!       J.escobar & M.Leriche 23/06/2014 Pb with JSA increment versus ini_nsv order initialization 
+!!       P. Tulet      Nov 2014 accumulated moles of aqueous species that fall at the surface
 !!                   
 !-------------------------------------------------------------------------------
 !
@@ -1005,6 +1006,16 @@ IF (NSV >=1) THEN
         YCHNAMES(JSV-JSA)=YRECFM(1:LEN_TRIM(YRECFM)-1) ! without M
       END DO
     ENDIF
+    IF (LUSECHAQ.AND.NRR>=3) THEN ! accumulated moles of aqueous species that fall at the surface (mol i/m2) 
+    DO JSV = NSV_CHACBEG+NSV_CHAC/2,NSV_CHACEND
+    YRECFM='ACPR_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1)))
+    ZWORK2D(:,:)  = XACPRAQ(:,:,JSV-NSV_CHACBEG-NSV_CHAC/2+1)
+    YCOMMENT    = 'X_Y_Accumulated moles of aqueous species at the surface (mol i/m2)'
+    IGRID       = 1
+    ILENCH      = LEN(YCOMMENT)
+    CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,YDIR,ZWORK2D,IGRID,ILENCH,YCOMMENT,IRESP)
+    END DO
+    END IF
     IF (LUSECHAQ.AND.LCH_PH) THEN  ! pH values in cloud
       YRECFM = 'PHC'
       YCOMMENT='X_Y_Z_PHC'
-- 
GitLab