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