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