Skip to content
Snippets Groups Projects
Commit b8e42431 authored by Gaelle Tanguy's avatar Gaelle Tanguy Committed by WAUTELET Philippe
Browse files

Christine 22/4/2014 :allow RARE calculation only if CCLOUD=ICE3aircraft_balloon_evol.f90

parent 50e468b5
No related branches found
No related tags found
No related merge requests found
......@@ -127,6 +127,7 @@ END MODULE MODI_AIRCRAFT_BALLOON_EVOL
!! Dec,12, 2008 (M. Leriche) move ZTDIST out from if.not.(tpflyer%fly)
!! Dec,15, 2008 (V. Masson) correct do while aircraft move
!! March, 2013 (O.Caumont) add radar reflectivities
!! April, 2014 (C.Lac) allow RARE calculation only if CCLOUD=ICE3
!!
!! --------------------------------------------------------------------------
!
......@@ -292,6 +293,7 @@ INTEGER :: IRESP ! return code
REAL, DIMENSION(SIZE(PR,3)) :: ZTEMPZ! vertical profile of temperature
REAL, DIMENSION(SIZE(PR,3)) :: ZRHODREFZ ! vertical profile of dry air density of the reference state
REAL, DIMENSION(SIZE(PR,3)) :: ZCIT ! pristine ice concentration
REAL, DIMENSION(SIZE(PR,1),SIZE(PR,2),SIZE(PR,3)) :: ZR
REAL, DIMENSION(SIZE(PR,3),SIZE(PR,4)+1) :: ZRZ ! vertical profile of hydrometeor mixing ratios
REAL :: ZA,ZB,ZCC,ZCX,ZALPHA,ZNU,ZLB,ZLBEX,ZRHOHYD ! generic microphysical parameters
INTEGER :: JJ ! loop counter for quadrature
......@@ -317,6 +319,7 @@ IF(.NOT. ALLOCATED(XSVW_FLUX)) &
ALLOCATE(XSVW_FLUX(SIZE(PSV,1),SIZE(PSV,2),SIZE(PSV,3),SIZE(PSV,4)))
CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP)
!
ZR = 0.
!
!* 1.0 initialization of processor test
! --------------------------------
......@@ -962,12 +965,18 @@ IF ( TPFLYER%FLY) THEN
!
DO JLOOP=1,SIZE(PR,4)
TPFLYER%R (IN,JLOOP) = FLYER_INTERP(PR(:,:,:,JLOOP))
IF (JLOOP>=2) ZR(:,:,:) = ZR(:,:,:) + PR(:,:,:,JLOOP)
END DO
DO JLOOP=1,SIZE(PSV,4)
TPFLYER%SV (IN,JLOOP) = FLYER_INTERP(PSV(:,:,:,JLOOP))
END DO
TPFLYER%RTZ (IN,:) = FLYER_INTERPZ(PR(:,:,:,2)+PR(:,:,:,3)+PR(:,:,:,4)+PR(:,:,:,5)+PR(:,:,:,6))
TPFLYER%RTZ (IN,:) = FLYER_INTERPZ(ZR(:,:,:))
TPFLYER%FFZ (IN,:) = FLYER_INTERPZ(SQRT(PU**2+PV**2))
! initialization CRARE and CRARE_ATT
TPFLYER%CRARE(IN,:) = 0.
TPFLYER%CRARE_ATT(IN,:) = 0.
IF (SIZE(PR,4) == 6 ) THEN ! only for ICE3
ZTEMPZ(:)=FLYER_INTERPZ(PTH(II:II+1,IJ:IJ+1,:) * ZEXN(:,:,:))
ZRHODREFZ(:)=FLYER_INTERPZ(PRHODREF(:,:,:))
ZCIT(:)=FLYER_INTERPZ(PCIT(:,:,:))
......@@ -979,9 +988,7 @@ IF ( TPFLYER%FLY) THEN
ZRZ(JK,7)=FLYER_INTERP_2D(PR(:,:,JK,2)*(1.-PSEA(:,:))) ! becomes cloud mixing ratio over land
END DO
ALLOCATE(ZAELOC(IKU))
! initialization CRARE and CRARE_ATT
TPFLYER%CRARE(IN,:) = 0.
TPFLYER%CRARE_ATT(IN,:) = 0.
!
ZAELOC(:)=0.
! initialization of quadrature points and weights
ALLOCATE(ZX(JPTS_GAULAG),ZW(JPTS_GAULAG))
......@@ -1146,7 +1153,7 @@ IF ( TPFLYER%FLY) THEN
TPFLYER%CRARE_ATT(IN,:)=XUNDEF
END WHERE
DEALLOCATE(ZX,ZW,ZRTMIN)
END IF ! end LOOP ICE3
! vertical wind
TPFLYER%WZ (IN,:) = FLYER_INTERPZ(ZWM(:,:,:))
IF (SIZE(PTKE)>0) TPFLYER%TKE (IN) = FLYER_INTERP(PTKE)
......
......@@ -188,7 +188,8 @@ END MODULE MODI_ENDSTEP
!! 10/2006 (Maric, Lac) modification for PPM schemes
!! 10/2009 (C.Lac) Correction on FIT temporal scheme for variables
!! advected with PPM
!! 04/2013 (C.Lac) FIT for all the variables
!! 04/2013 (C.Lac) FIT for all the variables
!! 04/2014 (C.Lac) Check on the positivity of XSVT
!------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
......@@ -206,9 +207,12 @@ USE MODD_NSV, ONLY : XSVMIN, NSV_CHEMBEG, NSV_CHEMEND, &
USE MODD_CH_AEROSOL, ONLY : LORILAM
USE MODD_DUST, ONLY : LDUST
USE MODD_PARAM_C2R2, ONLY : LACTIT
USE MODD_LBC_n, ONLY : CLBCX, CLBCY
USE MODI_BUDGET
USE MODI_SHUMAN
!
USE MODE_ll
!
IMPLICIT NONE
!
!* 0.1 DECLARATIONS OF ARGUMENTS
......@@ -262,10 +266,17 @@ REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PLBYRM,PLBYSVM !
!
INTEGER:: JSV ! loop counters
INTEGER :: IKU
INTEGER :: IIB, IIE ! index of first and last inner mass points along x
INTEGER :: IJB, IJE ! index of first and last inner mass points along y
!
!------------------------------------------------------------------------------
!
IIB = 1 + JPHEXT
IIE = SIZE(PUT,1) - JPHEXT
IJB = 1 + JPHEXT
IJE = SIZE(PUT,2) - JPHEXT
IKU=SIZE(XZHAT)
!
!* 1. ASSELIN FILTER
!
IF (HUVW_ADV_SCHEME(1:3)=='CEN') THEN
......@@ -304,6 +315,33 @@ IF (SIZE(PTKET,1) /= 0) PTKET(:,:,:)=PTKES(:,:,:)
!
PSVT(:,:,:,1:KSV)=PSVS(:,:,:,1:KSV)
!
IF (LWEST_ll( ) .AND. CLBCX(1)=='OPEN') THEN
DO JSV=1,KSV
PSVT(IIB,:,:,JSV)=MAX(PSVT(IIB,:,:,JSV),XSVMIN(JSV))
PSVT(IIB-1,:,:,JSV)=MAX(PSVT(IIB-1,:,:,JSV),XSVMIN(JSV))
END DO
END IF
!
IF (LEAST_ll( ) .AND. CLBCX(2)=='OPEN') THEN
DO JSV=1,KSV
PSVT(IIE,:,:,JSV)=MAX(PSVT(IIE,:,:,JSV),XSVMIN(JSV))
PSVT(IIE+1,:,:,JSV)=MAX(PSVT(IIE+1,:,:,JSV),XSVMIN(JSV))
END DO
END IF
!
IF (LSOUTH_ll( ) .AND. CLBCY(1)=='OPEN') THEN
DO JSV=1,KSV
PSVT(:,IJB,:,JSV)=MAX(PSVT(:,IJB,:,JSV),XSVMIN(JSV))
PSVT(:,IJB-1,:,JSV)=MAX(PSVT(:,IJB-1,:,JSV),XSVMIN(JSV))
END DO
END IF
!
IF (LNORTH_ll( ) .AND. CLBCY(2)=='OPEN') THEN
DO JSV=1,KSV
PSVT(:,IJE,:,JSV)=MAX(PSVT(:,IJE,:,JSV),XSVMIN(JSV))
PSVT(:,IJE+1,:,JSV)=MAX(PSVT(:,IJE+1,:,JSV),XSVMIN(JSV))
END DO
END IF
!------------------------------------------------------------------------------
!
!* 4. TEMPORAL ADVANCE OF THE LARGE SCALE FIELDS
......
......@@ -92,6 +92,7 @@ END MODULE MODI_PROFILER_n
!! -------------
!! Original 15/02/2002
!! March 2013 : C.Lac : Corrections for 1D + new fields (RARE,THV,DD,FF)
!! April 2014 : C.Lac : Call RADAR only if ICE3
!!
!! --------------------------------------------------------------------------
!
......@@ -184,10 +185,8 @@ INTEGER :: ILUOUT ! logical unit
INTEGER :: IRESP ! return code
INTEGER :: I ! loop for stations
!
! ++ CL
REAL,DIMENSION(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3)) :: ZTEMP,ZRARE,ZWORK32,ZTHV
REAL,DIMENSION(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3)) :: ZWORK33,ZWORK34
! -- CL
!----------------------------------------------------------------------------
!
!* 2. PRELIMINARIES
......@@ -358,7 +357,7 @@ END IF
! --------------
!
ZTEMP(:,:,:)=PTH(:,:,:)*(PP(:,:,:)/ XP00) **(XRD/XCPD)
CALL RADAR_RAIN_ICE (PR, PCIT, PRHODREF, ZTEMP, ZRARE, ZWORK32, &
IF (SIZE(PR,4) == 6) CALL RADAR_RAIN_ICE (PR, PCIT, PRHODREF, ZTEMP, ZRARE, ZWORK32, &
ZWORK33, ZWORK34 )
! Theta_v
ZTHV(:,:,:) = PTH(:,:,:) / (1.+WATER_SUM(PR(:,:,:,:)))*(1.+XRV/XRD*PR(:,:,:,1))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment