diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90 index bf39783dbadc7e7c7426fbf894ee198b3b77ffc4..9317532ee9ae9e1f405d8157700b7595257e7e52 100644 --- a/src/MNH/goto_model_wrapper.f90 +++ b/src/MNH/goto_model_wrapper.f90 @@ -16,6 +16,7 @@ !! 2016 (Leriche) Add MODD_CH_ICE Suppress MODD_CH_DEP_n !! Modification 01/2016 (JP Pinty) Add LIMA !! 10/2016 (F Brosse) Add prod/loss terms computation for chemistry +!! 07/2017 (M.Leriche) Add DIAG chimical surface fluxes !----------------------------------------------------------------- MODULE MODI_GOTO_MODEL_WRAPPER @@ -32,6 +33,7 @@ SUBROUTINE GOTO_MODEL_WRAPPER(KFROM, KTO) USE MODD_ADV_n USE MODD_BIKHARDT_n USE MODD_CH_AERO_n +USE MODD_CH_FLX_n USE MODD_CH_JVALUES_n USE MODD_CH_MNHC_n USE MODD_CH_SOLVER_n @@ -122,6 +124,7 @@ INTEGER,INTENT(IN) :: KFROM, KTO CALL ADV_GOTO_MODEL(KFROM, KTO) CALL BIKHARDT_GOTO_MODEL(KFROM, KTO) CALL CH_AERO_GOTO_MODEL(KFROM,KTO) +CALL CH_FLX_GOTO_MODEL(KFROM, KTO) CALL CH_JVALUES_GOTO_MODEL(KFROM, KTO) CALL CH_MNHC_GOTO_MODEL(KFROM, KTO) CALL CH_SOLVER_GOTO_MODEL(KFROM, KTO) diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90 index 0aba42873940d02b0667520e57521da23a6ad318..6ef8cbf4ecaaa7b2a119ab7583398f61a9964e0c 100644 --- a/src/MNH/ground_paramn.f90 +++ b/src/MNH/ground_paramn.f90 @@ -107,6 +107,7 @@ END MODULE MODI_GROUND_PARAM_n !! 06/2016 (G.Delautier) phasage surfex 8 !! (B.Vie) 2016 LIMA !! (M.Leriche) 24/03/16 remove flag for chemical surface fluxes +!! (M.Leriche) 01/07/2017 Add DIAG chimical surface fluxes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -141,6 +142,8 @@ USE MODD_SALT, ONLY : LSALT USE MODD_CH_AEROSOL, ONLY : LORILAM USE MODD_CSTS_DUST, ONLY : XMOLARWEIGHT_DUST USE MODD_CSTS_SALT, ONLY : XMOLARWEIGHT_SALT +USE MODD_CH_FLX_n, ONLY : XCHFLX +USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG ! USE MODI_NORMAL_INTERPOL USE MODI_ROTATE_WIND @@ -598,6 +601,7 @@ END IF IF (LUSECHEM) THEN DO JSV=NSV_CHEMBEG,NSV_CHEMEND PSFSV(:,:,JSV) = ZSFTS(:,:,JSV) * XMD / ( XAVOGADRO * XRHODREF(:,:,IKB)) + IF ((LCHEMDIAG).AND.(CPROGRAM == 'DIAG ')) XCHFLX(:,:,JSV) = PSFSV(:,:,JSV) END DO ELSE PSFSV(:,:,NSV_CHEMBEG:NSV_CHEMEND) = 0. diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 46cb888c3842ae85a202508353934ff5e893a48b..c9aa1051eaa15125e938ed54592739c971f1a9dd 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -273,6 +273,7 @@ END MODULE MODI_INI_MODEL_n !! F. Brosse Oct. 2016 add prod/loss terms computation for chemistry !! M.Leriche 2016 Chemistry !! M.Leriche 10/02/17 prevent negative values in LBX(Y)SVS +!! M.Leriche 01/07/2017 Add DIAG chimical surface fluxes !--------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -328,6 +329,7 @@ USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & USE MODD_CH_PH_n USE MODD_CH_AEROSOL, ONLY : LORILAM USE MODD_CH_AERO_n, ONLY : XSOLORG,XMI +USE MODD_CH_FLX_n, ONLY : XCHFLX USE MODD_PARAM_KAFR_n USE MODD_PARAM_MFSHALL_n USE MODD_DEEP_CONVECTION_n @@ -1505,6 +1507,10 @@ IF (LUSECHAQ.AND.(CPROGRAM == 'DIAG '.OR.CPROGRAM == 'MESONH')) THEN XACPRAQ(:,:,:) = 0. ENDIF ENDIF +IF ((LUSECHEM).AND.(CPROGRAM == 'DIAG ')) THEN + ALLOCATE(XCHFLX(IIU,IJU,NSV_CHEM)) + XCHFLX(:,:,:) = 0. +END IF ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90 index d5c384c116767d298387fe4c75e032e15266daba..8c5db78a99a052d30f4f72a76268f36fac0c5fee 100644 --- a/src/MNH/write_lfifm1_for_diag_supp.f90 +++ b/src/MNH/write_lfifm1_for_diag_supp.f90 @@ -85,6 +85,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG_SUPP !! J.-P. Chaboureau 07/03/2016 fix the dimensions of local arrays !! J.-P. Chaboureau 31/10/2016 add the call to RTTOV11 !! F. Brosse 10/2016 add chemical production destruction terms outputs +!! M.Leriche 01/07/2017 Add DIAG chimical surface fluxes !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -122,6 +123,7 @@ USE MODD_CH_AEROSOL, ONLY: LORILAM USE MODD_CH_MNHC_n USE MODD_CH_BUDGET_n USE MODD_CH_PRODLOSSTOT_n +USE MODD_CH_FLX_n, ONLY: XCHFLX USE MODD_RAD_TRANSF USE MODD_DIAG_IN_RUN, ONLY: XCURRENT_ZON10M,XCURRENT_MER10M, & XCURRENT_SFCO2, XCURRENT_SW, XCURRENT_LW @@ -700,6 +702,22 @@ IF (NRAD_3D >= 1) THEN END IF ! !------------------------------------------------------------------------------- +! Net surface gaseous fluxes +!print*,'LCHEMDIAG, NSV_CHEMBEG, NSV_CHEMEND=',& +!LCHEMDIAG, NSV_CHEMBEG, NSV_CHEMEND + +IF (LCHEMDIAG) THEN + DO JSV = NSV_CHEMBEG, NSV_CHEMEND + YRECFM = 'FLX_'//TRIM(CNAMES(JSV-NSV_CHEMBEG+1)) + WRITE(YCOMMENT,'(A6,A,A26)')'X_Y_Z_',TRIM(CNAMES(JSV-NSV_CHEMBEG+1)), & + ' Net chemical flux ppb.m/s' + ILENCH = LEN(YCOMMENT) + ZWORK21(:,:) = XCHFLX(:,:,JSV-NSV_CHEMBEG+1) * 1E9 + CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY', ZWORK21(:,:), & + IGRID,ILENCH,YCOMMENT,IRESP) + END DO +END IF +!------------------------------------------------------------------------------- ! !* Brightness temperatures from the radiatif transfer code (Morcrette, 1991) !