diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 98e480a511cd2e6adf2ede770f03d47d03f7f5aa..7d991a701bc5c2cd2829b7684db71c5cca7816ce 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -67,6 +67,7 @@ !! 03/2013 (O.Caumont) Modif call aircraft_balloon !! 03/2013 (C. Augros) Add variables for radar simulator in NAMELIST: !! NBAZIM,LSNRT,XSNRMIN +!! D.Ricard 2015 : add LMOIST_ES ! ! !------------------------------------------------------------------------------- @@ -195,7 +196,7 @@ NAMELIST/NAM_DIAG/ CISO, LVAR_RS, LVAR_LS, & NCONV_KF, NRAD_3D, CRAD_SAT, NRTTOVINFO, LRAD_SUBG_COND, & LVAR_TURB,LTURBFLX,LTURBDIAG,LMFFLX,XDTSTEP, & LVAR_MRW, LVAR_MRSV, LVAR_FRC, & - LTPZH, LMOIST_V, LMOIST_E, LCOREF, & + LTPZH, LMOIST_V, LMOIST_E,LMOIST_ES, LCOREF, & LVORT, LDIV, LMEAN_POVO, XMEAN_POVO, & LGEO, LAGEO, LWIND_ZM, LMSLP, LTHW, & LCLD_COV, LVAR_PR, LTOTAL_PR, LMEAN_PR, XMEAN_PR, & @@ -252,6 +253,7 @@ LVAR_MRSV=.FALSE. LTPZH=.FALSE. LMOIST_V=.FALSE. LMOIST_E=.FALSE. +LMOIST_ES=.FALSE. LCOREF=.FALSE. LVORT=.FALSE. LDIV=.FALSE. diff --git a/src/MNH/modd_diag_flag.f90 b/src/MNH/modd_diag_flag.f90 index bfb30c06ffca8710674aaa92b80a802848a2e484..ceb12c23eafc83385862ce8a53d2bf698a374fd1 100644 --- a/src/MNH/modd_diag_flag.f90 +++ b/src/MNH/modd_diag_flag.f90 @@ -36,6 +36,7 @@ !! J.-P. Pinty 29/11/02 add C3R5, ICE2, ICE4, ELEC !! J.-P. Chaboureau 15/04/03 add LRAD_SUBG_COND !! L. Leriche 21/04/06 add aqueous phase chemistry LCHAQDIAG +!! D.Ricard 2015 : add LMOIST_ES !! !------------------------------------------------------------------------------- ! @@ -70,6 +71,7 @@ LOGICAL :: LVAR_FRC LOGICAL :: LTPZH LOGICAL :: LMOIST_V LOGICAL :: LMOIST_E +LOGICAL :: LMOIST_ES LOGICAL :: LCOREF LOGICAL :: LVORT, LDIV LOGICAL :: LMEAN_POVO diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 31eb83591c024177f3d1417ee6aba24f87db9d1e..c6997eafa62a41abab340bf9aa0c45379b72bcd6 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -138,6 +138,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG !! J. escobar 27/03/2014 : write LAT/LON only in not CARTESIAN case !! G.Delautier 2014 : remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM !! C. Augros 2014 : new radar simulator (T matrice) +!! D.Ricard 2015 : add THETAES + POVOES (LMOIST_ES=T) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -280,6 +281,7 @@ REAL,DIMENSION(:,:,:,:,:), ALLOCATABLE :: ZWORK42 ! reflectivit REAL,DIMENSION(:,:,:,:,:), ALLOCATABLE :: ZWORK42_BIS REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZWORK43 ! latlon coordinates of cartesian grid points (PLATLON) REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZPHI,ZTHETAE,ZTHETAV +REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZTHETAES INTEGER, DIMENSION(:,:), ALLOCATABLE :: IWORK1 integer :: ICURR,INBOUT,IERR ! @@ -2139,6 +2141,25 @@ IF (( LMOIST_E .OR. LBV_FR ) .AND. (NRR>0)) THEN CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAE,IGRID,ILENCH,YCOMMENT,IRESP) END IF END IF +!------------------------------------------------------------------------------- +! +!* Thetaes computation +! +IF (LMOIST_ES .AND. (NRR>0)) THEN + ALLOCATE(ZTHETAES(IIU,IJU,IKU)) + ZWORK31(:,:,:) = MAX(QSAT(ZTEMP(:,:,:),XPABST(:,:,:)),1.E-10) + ZTHETAES(:,:,:)= ( 2840./ & + (3.5*ALOG(XTHT(:,:,:)*( XPABST(:,:,:)/XP00 )**(XRD/XCPD) ) & + - ALOG( XPABST(:,:,:)*0.01*ZWORK31(:,:,:) / ( 0.622+ZWORK31(:,:,:) ) ) & + -4.805 ) ) + 55. + ZTHETAES(:,:,:)= XTHT(:,:,:) * EXP( (3376. / ZTHETAE(:,:,:) - 2.54) & + *ZWORK31(:,:,:) *(1. +0.81 *ZWORK31(:,:,:)) ) + YRECFM='THETAES' + YCOMMENT='X_Y_Z_Equivalent Saturated potential Temperature(K)' + IGRID=1 + ILENCH=LEN(YCOMMENT) + CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZTHETAES,IGRID,ILENCH,YCOMMENT,IRESP) +ENDIF ! !------------------------------------------------------------------------------- ! @@ -2279,6 +2300,23 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN ! END IF ! +! Equivalent Saturated Potential Vorticity in PV units +IF (LMOIST_ES .AND. (NRR>0) ) THEN + ZWORK31(:,:,:)=GX_M_M(1,IKU,1,ZTHETAES,XDXX,XDZZ,XDZX) + ZWORK32(:,:,:)=GY_M_M(1,IKU,1,ZTHETAES,XDYY,XDZZ,XDZY) + ZWORK33(:,:,:)=GZ_M_M(1,IKU,1,ZTHETAES,XDZZ) + ZWORK34(:,:,:)= ZWORK31(:,:,:)*MZF(1,IKU,1,MYF(ZVOX(:,:,:))) & + + ZWORK32(:,:,:)*MZF(1,IKU,1,MXF(ZVOY(:,:,:))) & + + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:)) + ZWORK34(:,:,:)=ZWORK34(:,:,:)*1E6/XRHODREF(:,:,:) + YRECFM='POVOES' + YCOMMENT='X_Y_Z_Equivalent Saturated POtential VOrticity (PVU)' + IGRID=1 + ILENCH=LEN(YCOMMENT) + CALL FMWRIT(HFMFILE,YRECFM,CLUOUT,'XY',ZWORK34,IGRID,ILENCH,YCOMMENT,IRESP) +ENDIF +! +! !------------------------------------------------------------------------------- ! !* Horizontal divergence @@ -2742,6 +2780,7 @@ IF (LBV_FR) THEN END IF ! IF(ALLOCATED(ZTHETAE)) DEALLOCATE(ZTHETAE) +IF(ALLOCATED(ZTHETAES)) DEALLOCATE(ZTHETAES) !------------------------------------------------------------------------------- ! !* GPS synthetic ZTD, ZHD, ZWD