Newer
Older

RODIER Quentin
committed
PINPRC, PINDEP, PINPRR, ZINPRI, PINPRS, PINPRG, PINPRH, &
PEVAP3D, PCLDFR, PICEFR, PRAINFR )

RODIER Quentin
committed
ELSE
IF (OWARM) CALL LIMA_WARM(OACTIT, OSEDC, ORAIN, KSPLITR, PTSTEP, KMI, &
TPFILE, KRR, PZZ, PRHODJ, &
PRHODREF, PEXNREF, PW_ACT, PPABST, &
PDTHRAD, &

RODIER Quentin
committed
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
PTHT, PRT, PSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PTHS, PRS, PSVS(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PINPRC, PINPRR, PINDEP, PINPRR3D, PEVAP3D )
!
IF (LCOLD) CALL LIMA_COLD(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI, &
KRR, PZZ, PRHODJ, &
PRHODREF, PEXNREF, PPABST, PW_ACT, &
PTHT, PRT, PSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PTHS, PRS, PSVS(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PINPRS, PINPRG, PINPRH )
!
IF (OWARM .AND. LCOLD) CALL LIMA_MIXED(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI, &
KRR, PZZ, PRHODJ, &
PRHODREF, PEXNREF, PPABST, PW_ACT, &
PTHT, PRT, PSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PTHS, PRS, PSVS(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END) )
ENDIF
!
!* 12.2 Perform the saturation adjustment
!
IF (LSPRO) THEN
CALL LIMA_NOTADJUST (KMI, TPFILE, HRAD, &
PTSTEP, PRHODJ, PPABSTT, PPABST, PRHODREF, PEXNREF, PZZ, &

RODIER Quentin
committed
PTHT,PRT, PSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PTHS,PRS, PSVS(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PCLDFR, PICEFR, PRAINFR, PSRCS )

RODIER Quentin
committed
ELSE IF (LPTSPLIT) THEN
CALL LIMA_ADJUST_SPLIT(YLDIMPHYEX, KRR, KMI, TPFILE, CCONDENS, CLAMBDA3, &

RODIER Quentin
committed
OSUBG_COND, OSIGMAS, PTSTEP, PSIGQSAT, &
PRHODREF, PRHODJ, PEXNREF, PSIGS, PMFCONV, PPABST, PPABSTT, ZZZ,&

RODIER Quentin
committed
PDTHRAD, PW_ACT, &
PRT, PRS, PSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PSVS(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PTHS, PSRCS, PCLDFR, PICEFR, PRC_MF, PRI_MF, PCF_MF )

RODIER Quentin
committed
ELSE
CALL LIMA_ADJUST(KRR, KMI, TPFILE, &
OSUBG_COND, PTSTEP, &
PRHODREF, PRHODJ, PEXNREF, PPABST, PPABSTT, &

RODIER Quentin
committed
PRT, PRS, PSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PSVS(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END), &
PTHS, PSRCS, PCLDFR, PICEFR, PRAINFR )

RODIER Quentin
committed
ENDIF
!
END SELECT
!
IF(HCLOUD=='ICE3' .OR. HCLOUD=='ICE4' ) THEN

RODIER Quentin
committed
PINPRC3D=ZFPR(:,:,:,2) / CST%XRHOLW
PINPRR3D=ZFPR(:,:,:,3) / CST%XRHOLW
PINPRS3D=ZFPR(:,:,:,5) / CST%XRHOLW
PINPRG3D=ZFPR(:,:,:,6) / CST%XRHOLW
IF(KRR==7) PINPRH3D=ZFPR(:,:,:,7) / CST%XRHOLW

RODIER Quentin
committed
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
WHERE (PRT(:,:,:,2) > 1.E-04 )
PSPEEDC=ZFPR(:,:,:,2) / (PRT(:,:,:,2) * PRHODREF(:,:,:))
ENDWHERE
WHERE (PRT(:,:,:,3) > 1.E-04 )
PSPEEDR=ZFPR(:,:,:,3) / (PRT(:,:,:,3) * PRHODREF(:,:,:))
ENDWHERE
WHERE (PRT(:,:,:,5) > 1.E-04 )
PSPEEDS=ZFPR(:,:,:,5) / (PRT(:,:,:,5) * PRHODREF(:,:,:))
ENDWHERE
WHERE (PRT(:,:,:,6) > 1.E-04 )
PSPEEDG=ZFPR(:,:,:,6) / (PRT(:,:,:,6) * PRHODREF(:,:,:))
ENDWHERE
IF(KRR==7) THEN
WHERE (PRT(:,:,:,7) > 1.E-04 )
PSPEEDH=ZFPR(:,:,:,7) / (PRT(:,:,:,7) * PRHODREF(:,:,:))
ENDWHERE
ENDIF
ENDIF
! Remove non-physical negative values (unnecessary in a perfect world) + corresponding budgets
call Sources_neg_correct( hcloud, 'NECON', krr, ptstep, ppabst, ptht, prt, pths, prs, psvs, prhodj )
!-------------------------------------------------------------------------------
!
!
!* 13. SWITCH BACK TO THE PROGNOSTIC VARIABLES
! ---------------------------------------
!
PTHS(:,:,:) = PTHS(:,:,:) * PRHODJ(:,:,:)
!
DO JRR = 1,KRR
PRS(:,:,:,JRR) = PRS(:,:,:,JRR) * PRHODJ(:,:,:)
END DO
!
IF (HCLOUD=='C2R2' .OR. HCLOUD=='C3R5' .OR. HCLOUD=='KHKO' .OR. HCLOUD=='LIMA') THEN
DO JSV = ISVBEG, ISVEND
PSVS(:,:,:,JSV) = PSVS(:,:,:,JSV) * PRHODJ(:,:,:)
ENDDO
ENDIF
!-------------------------------------------------------------------------------
!
END SUBROUTINE RESOLVED_CLOUD