Skip to content
Snippets Groups Projects
Commit 056fdc3f authored by RIETTE Sébastien's avatar RIETTE Sébastien
Browse files

S. Riette 17 Jan 2022: sedimentation call simplified

parent cee1228d
No related branches found
No related tags found
No related merge requests found
......@@ -123,64 +123,34 @@ IF (BUCONF%LBUDGET_RG) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDG
IF (BUCONF%LBUDGET_RH .AND. KRR==7) CALL BUDGET_STORE_INIT_PHY(D, TBUDGETS(NBUDGET_RH), 'SEDI', PRHS(:, :) * PRHODJ(:, :))
IF(PARAMI%CSEDIM=='STAT') THEN
IF (KRR==7) THEN
DO JK = IKTB,IKTE
DO JIJ = IIJB,IIJE
ZRCT(JIJ,JK)=PRCS(JIJ,JK)*PTSTEP
ZRRT(JIJ,JK)=PRRS(JIJ,JK)*PTSTEP
ZRIT(JIJ,JK)=PRIS(JIJ,JK)*PTSTEP
ZRST(JIJ,JK)=PRSS(JIJ,JK)*PTSTEP
ZRGT(JIJ,JK)=PRGS(JIJ,JK)*PTSTEP
ZRHT(JIJ,JK)=PRHS(JIJ,JK)*PTSTEP
ENDDO
DO JK = IKTB,IKTE
DO JIJ = IIJB,IIJE
ZRCT(JIJ,JK)=PRCS(JIJ,JK)*PTSTEP
ZRRT(JIJ,JK)=PRRS(JIJ,JK)*PTSTEP
ZRIT(JIJ,JK)=PRIS(JIJ,JK)*PTSTEP
ZRST(JIJ,JK)=PRSS(JIJ,JK)*PTSTEP
ZRGT(JIJ,JK)=PRGS(JIJ,JK)*PTSTEP
IF (KRR==7) ZRHT(JIJ,JK)=PRHS(JIJ,JK)*PTSTEP
ENDDO
CALL ICE4_SEDIMENTATION_STAT(D, CST, ICEP, ICED, PARAMI, &
&PTSTEP, KRR, PDZZ, &
&PRHODREF, PPABST, PTHT, PT, PRHODJ, &
&PRCS, ZRCT, PRRS, ZRRT, PRIS, ZRIT,&
&PRSS, ZRST, PRGS, ZRGT,&
&PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=ZRHT, PRHS=PRHS, PFPR=PFPR)
ELSE
DO JK = IKTB,IKTE
DO JIJ = IIJB,IIJE
ZRCT(JIJ,JK)=PRCS(JIJ,JK)*PTSTEP
ZRRT(JIJ,JK)=PRRS(JIJ,JK)*PTSTEP
ZRIT(JIJ,JK)=PRIS(JIJ,JK)*PTSTEP
ZRST(JIJ,JK)=PRSS(JIJ,JK)*PTSTEP
ZRGT(JIJ,JK)=PRGS(JIJ,JK)*PTSTEP
ENDDO
ENDDO
CALL ICE4_SEDIMENTATION_STAT(D, CST, ICEP, ICED, PARAMI, &
&PTSTEP, KRR, PDZZ, &
&PRHODREF, PPABST, PTHT, PT, PRHODJ, &
&PRCS, ZRCT, PRRS, ZRRT, PRIS, ZRIT,&
&PRSS, ZRST, PRGS, ZRGT,&
&PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PFPR=PFPR)
ENDIF
ENDDO
CALL ICE4_SEDIMENTATION_STAT(D, CST, ICEP, ICED, PARAMI, &
&PTSTEP, KRR, PDZZ, &
&PRHODREF, PPABST, PTHT, PT, PRHODJ, &
&PRCS, ZRCT, PRRS, ZRRT, PRIS, ZRIT,&
&PRSS, ZRST, PRGS, ZRGT,&
&PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=ZRHT, PRHS=PRHS, PFPR=PFPR)
PINPRS(IIJB:IIJE) = PINPRS(IIJB:IIJE) + ZINPRI(IIJB:IIJE)
!No negativity correction here as we apply sedimentation on PR.S*PTSTEP variables
ELSEIF(PARAMI%CSEDIM=='SPLI') THEN
IF(KRR==7) THEN
CALL ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
&PTSTEP, KRR, PDZZ, &
&PRHODREF, PPABST, PTHT, PT, PRHODJ, &
&PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
ELSE
CALL ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
&PTSTEP, KRR, PDZZ, &
&PRHODREF, PPABST, PTHT, PT, PRHODJ, &
&PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PFPR=PFPR)
ENDIF
CALL ICE4_SEDIMENTATION_SPLIT(D, CST, ICEP, ICED, PARAMI, &
&PTSTEP, KRR, PDZZ, &
&PRHODREF, PPABST, PTHT, PT, PRHODJ, &
&PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, ZINPRI, PINPRS, PINPRG, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
PINPRS(IIJB:IIJE) = PINPRS(IIJB:IIJE) + ZINPRI(IIJB:IIJE)
!We correct negativities with conservation
!SPLI algorith uses a time-splitting. Inside the loop a temporary m.r. is used.
......
......@@ -216,7 +216,7 @@ DO JK = IKE , IKB, -1*IKL
PRIS(JIJ,JK) = PRIS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,4)-ZSED(JIJ,IK,4))*ZINVTSTEP
PRSS(JIJ,JK) = PRSS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,5)-ZSED(JIJ,IK,5))*ZINVTSTEP
PRGS(JIJ,JK) = PRGS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,6)-ZSED(JIJ,IK,6))*ZINVTSTEP
IF (PRESENT(PRHS)) THEN
IF (PRESENT(PRHS) .AND. KRR==7) THEN
PRHS(JIJ,JK) = PRHS(JIJ,JK)+ZTSORHODZ(JIJ)*(ZSED(JIJ,IKPLUS,7)-ZSED(JIJ,IK,7))*ZINVTSTEP
ENDIF
ENDDO
......@@ -228,7 +228,7 @@ DO JK = IKE , IKB, -1*IKL
PINPRI(JIJ) = ZSED(JIJ,IK,4)/CST%XRHOLW
PINPRS(JIJ) = ZSED(JIJ,IK,5)/CST%XRHOLW
PINPRG(JIJ) = ZSED(JIJ,IK,6)/CST%XRHOLW
IF (PRESENT(PINPRH)) THEN
IF (PRESENT(PINPRH) .AND. KRR==7) THEN
PINPRH(JIJ) = ZSED(JIJ,IK,7)/CST%XRHOLW
ENDIF
ENDDO
......
......@@ -336,25 +336,14 @@ ENDDO
! -------------------------------------
!
IF(.NOT. PARAMI%LSEDIM_AFTER) THEN
IF(KRR==7) THEN
CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
&PTSTEP, KRR, PDZZ, &
&ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
&PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, PINPRS, PINPRG, &
&TBUDGETS, KBUDGETS, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
ELSE
CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
&PTSTEP, KRR, PDZZ, &
&ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
&PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, PINPRS, PINPRG, &
&TBUDGETS, KBUDGETS, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PFPR=PFPR)
ENDIF
CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
&PTSTEP, KRR, PDZZ, &
&ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
&PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, PINPRS, PINPRG, &
&TBUDGETS, KBUDGETS, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
ENDIF
!
!
......@@ -526,33 +515,32 @@ END IF
! -------------------------------------
!
IF(PARAMI%LSEDIM_AFTER) THEN
IF(KRR==7) THEN
CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
&PTSTEP, KRR, PDZZ, &
&ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
&PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, PINPRS, PINPRG, &
&TBUDGETS, KBUDGETS, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
ELSE
CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
&PTSTEP, KRR, PDZZ, &
&ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
&PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, PINPRS, PINPRG, &
&TBUDGETS, KBUDGETS, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PFPR=PFPR)
ENDIF
CALL ICE4_SEDIMENTATION(D, CST, ICEP, ICED, PARAMI, BUCONF, &
&PTSTEP, KRR, PDZZ, &
&ZZ_LVFACT, ZZ_LSFACT, PRHODREF, PPABST, PTHT, ZT, PRHODJ, &
&PTHS, PRVS, PRCS, PRCT, PRRS, PRRT, PRIS, PRIT, PRSS, PRST, PRGS, PRGT,&
&PINPRC, PINPRR, PINPRS, PINPRG, &
&TBUDGETS, KBUDGETS, &
&PSEA=PSEA, PTOWN=PTOWN, &
&PINPRH=PINPRH, PRHT=PRHT, PRHS=PRHS, PFPR=PFPR)
!"sedimentation" of rain fraction
DO JK = IKTB, IKTE
DO JIJ=IIJB,IIJE
ZWR(JIJ,JK,IRR)=PRRS(JIJ,JK)*PTSTEP
ZWR(JIJ,JK,IRS)=PRSS(JIJ,JK)*PTSTEP
ZWR(JIJ,JK,IRG)=PRGS(JIJ,JK)*PTSTEP
IF(KRR==7) THEN
ZWR(JIJ,JK,IRH)=PRHS(JIJ,JK)*PTSTEP
ENDIF
ENDDO
ENDDO
IF (PRESENT(PRHS)) THEN
CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, PRRS(:,:)*PTSTEP, &
&PRSS(:,:)*PTSTEP, PRGS(:,:)*PTSTEP, PRHS(:,:)*PTSTEP)
CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, ZWR(:,:,IRR), &
&ZWR(:,:,IRS), ZWR(:,:,IRG), ZWR(:,:,IRH))
ELSE
CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, PRRS(:,:)*PTSTEP, &
&PRSS(:,:)*PTSTEP, PRGS(:,:)*PTSTEP)
CALL ICE4_RAINFR_VERT(D, ICED, PRAINFR, ZWR(:,:,IRR), &
&ZWR(:,:,IRS), ZWR(:,:,IRG))
ENDIF
ENDIF
!
......
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