Skip to content
Snippets Groups Projects
Commit b89c1296 authored by RODIER Quentin's avatar RODIER Quentin
Browse files

Quentin 09/10/2023: add control in mean_field for computation with water vapor...

Quentin 09/10/2023: add control in mean_field for computation with water vapor (for IBM/EOL dry KTEST)
parent c7323984
No related branches found
No related tags found
No related merge requests found
...@@ -58,6 +58,7 @@ END MODULE MODI_MEAN_FIELD ...@@ -58,6 +58,7 @@ END MODULE MODI_MEAN_FIELD
! ------------ ! ------------
! !
USE MODE_ll USE MODE_ll
USE MODD_CONF_n, ONLY: LUSERV
USE MODD_MEAN_FIELD_n USE MODD_MEAN_FIELD_n
USE MODD_PARAM_n USE MODD_PARAM_n
USE MODD_MEAN_FIELD USE MODD_MEAN_FIELD
...@@ -125,56 +126,55 @@ IKE=IKU-JPVEXT ...@@ -125,56 +126,55 @@ IKE=IKU-JPVEXT
! !
!* 1. MEAN !* 1. MEAN
! !
ZTEMPT = PTHT*(((PPABST)/XP00)**(XRD/XCPD)) ZTEMPT = PTHT*(((PPABST)/XP00)**(XRD/XCPD))
! !
! !
! Calculation of saturation specific humidity over water/ice IF(LUSERV) THEN
! ! Calculation of saturation specific humidity over water/ice
ZQSAT_W = QSAT (ZTEMPT, PPABST) !
ZQSAT_I = QSATI(ZTEMPT, PPABST) ZQSAT_W = QSAT (ZTEMPT, PPABST)
! ZQSAT_I = QSATI(ZTEMPT, PPABST)
! Conversion mixing ratio -> specfic humidity !
! ! Conversion mixing ratio -> specfic humidity
ZRT(:,:,:) = -9999.0 !
WHERE (PRT(:,:,:).LT.1.0E-6) ZRT(:,:,:) = -9999.0
ZRT(:,:,:) = 1.0E-6 WHERE (PRT(:,:,:).LT.1.0E-6)
ELSEWHERE ZRT(:,:,:) = 1.0E-6
ZRT(:,:,:) = PRT(:,:,:) ELSEWHERE
ENDWHERE ZRT(:,:,:) = PRT(:,:,:)
! ENDWHERE
ZQACT(:,:,:) = 1.0 / ( 1.0 + 1.0/ZRT(:,:,:) ) !
! ZQACT(:,:,:) = 1.0 / ( 1.0 + 1.0/ZRT(:,:,:) )
! Calculation of relative humidity with respect to water/ice !
! ! Calculation of relative humidity with respect to water/ice
ZRH_W(:,:,:) = 100.0*ZQACT(:,:,:)/ZQSAT_W(:,:,:) !
ZRH_I(:,:,:) = 100.0*ZQACT(:,:,:)/ZQSAT_I(:,:,:) ZRH_W(:,:,:) = 100.0*ZQACT(:,:,:)/ZQSAT_W(:,:,:)
! ZRH_I(:,:,:) = 100.0*ZQACT(:,:,:)/ZQSAT_I(:,:,:)
! Fractional partitioning between liquid and solid cloud water !
! as assumed in condensations ! Fractional partitioning between liquid and solid cloud water
! ! as assumed in condensations
ZFRAC(:,:,:) = ( XTT - ZTEMPT(:,:,:) ) / 20. !
ZFRAC(:,:,:) = MAX( 0., MIN(1., ZFRAC(:,:,:) ) ) ZFRAC(:,:,:) = ( XTT - ZTEMPT(:,:,:) ) / 20.
! ZFRAC(:,:,:) = MAX( 0., MIN(1., ZFRAC(:,:,:) ) )
! Calculation of weighted average between water and ice value !
! ! Calculation of weighted average between water and ice value
ZRH_P(:,:,:) = ZFRAC(:,:,:) * ZRH_I(:,:,:) + (1.0-ZFRAC(:,:,:)) * ZRH_W(:,:,:) !
! ZRH_P(:,:,:) = ZFRAC(:,:,:) * ZRH_I(:,:,:) + (1.0-ZFRAC(:,:,:)) * ZRH_W(:,:,:)
! Calculation of the column maximum of relative humidity !
! ! Calculation of the column maximum of relative humidity
ZRH_W_MAXCOL(:,:) = MAXVAL(ZRH_W(:,:,:),DIM=3) !
ZRH_I_MAXCOL(:,:) = MAXVAL(ZRH_I(:,:,:),DIM=3) ZRH_W_MAXCOL(:,:) = MAXVAL(ZRH_W(:,:,:),DIM=3)
ZRH_P_MAXCOL(:,:) = MAXVAL(ZRH_P(:,:,:),DIM=3) ZRH_I_MAXCOL(:,:) = MAXVAL(ZRH_I(:,:,:),DIM=3)
! ZRH_P_MAXCOL(:,:) = MAXVAL(ZRH_P(:,:,:),DIM=3)
IF (LPASPOL) XSVT_MEAN = PSVT + XSVT_MEAN XQ_MEAN = XQ_MEAN + ZQACT
IF (CTURB/='NONE') XTKEM_MEAN = PTKET + XTKEM_MEAN XRH_W_MEAN = XRH_W_MEAN + ZRH_W
XQ_MEAN = XQ_MEAN + ZQACT XRH_I_MEAN = XRH_I_MEAN + ZRH_I
XRH_W_MEAN = XRH_W_MEAN + ZRH_W XRH_P_MEAN = XRH_P_MEAN + ZRH_P
XRH_I_MEAN = XRH_I_MEAN + ZRH_I XRH_W_MAXCOL_MEAN = XRH_W_MAXCOL_MEAN + ZRH_W_MAXCOL
XRH_P_MEAN = XRH_P_MEAN + ZRH_P XRH_I_MAXCOL_MEAN = XRH_I_MAXCOL_MEAN + ZRH_I_MAXCOL
XRH_W_MAXCOL_MEAN = XRH_W_MAXCOL_MEAN + ZRH_W_MAXCOL XRH_P_MAXCOL_MEAN = XRH_P_MAXCOL_MEAN + ZRH_P_MAXCOL
XRH_I_MAXCOL_MEAN = XRH_I_MAXCOL_MEAN + ZRH_I_MAXCOL END IF
XRH_P_MAXCOL_MEAN = XRH_P_MAXCOL_MEAN + ZRH_P_MAXCOL
IF (LPASPOL) XSVT_MEAN = PSVT + XSVT_MEAN IF (LPASPOL) XSVT_MEAN = PSVT + XSVT_MEAN
IF (CTURB/='NONE') XTKEM_MEAN = PTKET + XTKEM_MEAN IF (CTURB/='NONE') XTKEM_MEAN = PTKET + XTKEM_MEAN
! !
......
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