From 11101bb6e990c08ea98b8aab2d417ab2773dce24 Mon Sep 17 00:00:00 2001
From: SebastienRietteMTO
<77663714+SebastienRietteMTO@users.noreply.github.com>
Date: Fri, 5 Apr 2024 14:24:50 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20UMR-CNRM?=
=?UTF-8?q?/PHYEX@ec18f73bcbda41cce7858c0ca509fbf947453019=20=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../html/main__ice__adjust_8F90_source.html | 2 +-
doxygen/html/main__rain__ice_8F90_source.html | 2 +-
.../main__rain__ice__old_8F90_source.html | 2 +-
doxygen/html/main__shallow_8F90_source.html | 2 +-
doxygen/html/main__turb_8F90_source.html | 2 +-
...ce4__sedimentation__split_8F90_source.html | 733 +++++++++---------
6 files changed, 370 insertions(+), 373 deletions(-)
diff --git a/doxygen/html/main__ice__adjust_8F90_source.html b/doxygen/html/main__ice__adjust_8F90_source.html
index 90f9b6d8..7bc2f4a1 100644
--- a/doxygen/html/main__ice__adjust_8F90_source.html
+++ b/doxygen/html/main__ice__adjust_8F90_source.html
@@ -277,7 +277,7 @@
205 #if defined(USE_COLCALL) && defined(_OPENACC)
207 ylstack%L = loc(pstack(1, ibl)) + ceiling(istsz * kind(pstack) / nproma / 8.) * 8 * (jlon - 1)
- 208 ylstack%U = ylstack%L + ceiling(istsz * kind(pstack) / nproma / 8.) * 8
+ 208 ylstack%U = ylstack%L + floor(istsz * kind(pstack) / nproma / 8.) * 8
210 ylstack%L = loc(pstack(1, ibl))
211 ylstack%U = ylstack%L + istsz * kind(pstack)
diff --git a/doxygen/html/main__rain__ice_8F90_source.html b/doxygen/html/main__rain__ice_8F90_source.html
index 2f173741..485da40c 100644
--- a/doxygen/html/main__rain__ice_8F90_source.html
+++ b/doxygen/html/main__rain__ice_8F90_source.html
@@ -277,7 +277,7 @@
205 #if defined(USE_COLCALL) && defined(_OPENACC)
207 ylstack%L = loc(pstack(1, ibl)) + ceiling(istsz * kind(pstack) / nproma / 8.) * 8 * (jlon - 1)
- 208 ylstack%U = ylstack%L + ceiling(istsz * kind(pstack) / nproma / 8.) * 8
+ 208 ylstack%U = ylstack%L + floor(istsz * kind(pstack) / nproma / 8.) * 8
210 ylstack%L = loc(pstack(1, ibl))
211 ylstack%U = ylstack%L + istsz * kind(pstack)
diff --git a/doxygen/html/main__rain__ice__old_8F90_source.html b/doxygen/html/main__rain__ice__old_8F90_source.html
index 36bfe45b..b7ac04cd 100644
--- a/doxygen/html/main__rain__ice__old_8F90_source.html
+++ b/doxygen/html/main__rain__ice__old_8F90_source.html
@@ -345,7 +345,7 @@
273 #if defined(USE_COLCALL) && defined(_OPENACC)
275 ylstack%L = loc(pstack(1, ibl)) + ceiling(istsz * kind(pstack) / nproma / 8.) * 8 * (jlon - 1)
- 276 ylstack%U = ylstack%L + ceiling(istsz * kind(pstack) / nproma / 8.) * 8
+ 276 ylstack%U = ylstack%L + floor(istsz * kind(pstack) / nproma / 8.) * 8
278 ylstack%L = loc(pstack(1, ibl))
279 ylstack%U = ylstack%L + istsz * kind(pstack)
diff --git a/doxygen/html/main__shallow_8F90_source.html b/doxygen/html/main__shallow_8F90_source.html
index 344f911c..579c123f 100644
--- a/doxygen/html/main__shallow_8F90_source.html
+++ b/doxygen/html/main__shallow_8F90_source.html
@@ -348,7 +348,7 @@
276 #if defined(USE_COLCALL) && defined(_OPENACC)
278 ylstack%L = loc(pstack(1, ibl)) + ceiling(istsz * kind(pstack) / nproma / 8.) * 8 * (jlon - 1)
- 279 ylstack%U = ylstack%L + ceiling(istsz * kind(pstack) / nproma / 8.) * 8
+ 279 ylstack%U = ylstack%L + floor(istsz * kind(pstack) / nproma / 8.) * 8
281 ylstack%L = loc(pstack(1, ibl))
282 ylstack%U = ylstack%L + istsz * kind(pstack)
diff --git a/doxygen/html/main__turb_8F90_source.html b/doxygen/html/main__turb_8F90_source.html
index 48d5a5c0..92d813f5 100644
--- a/doxygen/html/main__turb_8F90_source.html
+++ b/doxygen/html/main__turb_8F90_source.html
@@ -367,7 +367,7 @@
295 #if defined(USE_COLCALL) && defined(_OPENACC)
297 ylstack%L = loc(pstack(1, ibl)) + ceiling(istsz * kind(pstack) / nproma / 8.) * 8 * (jlon - 1)
- 298 ylstack%U = ylstack%L + ceiling(istsz * kind(pstack) / nproma / 8.) * 8
+ 298 ylstack%U = ylstack%L + floor(istsz * kind(pstack) / nproma / 8.) * 8
300 ylstack%L = loc(pstack(1, ibl))
301 ylstack%U = ylstack%L + istsz * kind(pstack)
diff --git a/doxygen/html/mode__ice4__sedimentation__split_8F90_source.html b/doxygen/html/mode__ice4__sedimentation__split_8F90_source.html
index 402c50cd..986fc72b 100644
--- a/doxygen/html/mode__ice4__sedimentation__split_8F90_source.html
+++ b/doxygen/html/mode__ice4__sedimentation__split_8F90_source.html
@@ -465,377 +465,374 @@
- 396 CHARACTER(LEN=10) :: YSPE
-
- 398 LOGICAL :: GPRESENT_PFPR
-
- 400 REAL :: ZZWLBDC, ZZRAY, ZZT, ZZWLBDA, ZZCC
-
- 402 REAL :: ZFSED, ZEXSED
-
- 404 REAL,
DIMENSION(D%NIJT) :: ZMAX_TSTEP
- 405 REAL,
DIMENSION(SIZE(ICED%XRTMIN)) :: ZRSMIN
- 406 REAL,
DIMENSION(D%NIJT) :: ZREMAINT
- 407 LOGICAL :: ZANYREMAINT
- 408 REAL,
DIMENSION(D%NIJT, 0:D%NKT+1) :: ZWSED
- 409 INTEGER :: IKTB, IKTE, IKB, IKL, IIJE, IIJB
- 410 REAL(KIND=jphook) :: zhook_handle
-
-
-
-
-
-
-
-
- 419 REAL,
DIMENSION(MERGE(D%NIJT,0,OELEC),MERGE(D%NKT+2,0,OELEC)) :: &
-
-
- 422 REAL,
DIMENSION(MERGE(D%NIJT,0,OSEDIM_BEARD),MERGE(D%NKT,0,OSEDIM_BEARD)) :: &
-
-
- 425 REAL,
DIMENSION(MERGE(D%NIJT,0,OSEDIM_BEARD),MERGE(D%NKT,0,OSEDIM_BEARD)) :: &
-
-
- 428 LOGICAL,
DIMENSION(MERGE(D%NIJT,0,OSEDIM_BEARD),MERGE(D%NKT,0,OSEDIM_BEARD)) :: GMASK
-
- 430 REAL :: ZFQSED, ZEXQSED
- 431 REAL :: ZEXMIN, ZEXMAX
-
-
-
-
-
-
- 438 IF (lhook)
CALL dr_hook(
'ICE4_SEDIMENTATION_SPLIT:INTERNAL_SEDIM_SPLIT', 0, zhook_handle)
-
-
-
-
-
-
-
-
- 447 IF (kspe<2 .OR. kspe>7)
CALL print_msg(nverb_fatal,
'GEN',
'INTERNAL_SEDIM_SPLIT',
'invalid species (KSPE variable)')
-
- 449 IF (
PRESENT(pfpr))
THEN
- 450 gpresent_pfpr = .true.
-
- 452 gpresent_pfpr = .false.
-
-
-
-
- 457 zrsmin = iced%XRTMIN * zinvtstep
-
- 459 zremaint(iijb:iije) = ptstep
-
-
- 462 DO WHILE (zanyremaint)
-
-
- 465 IF (oelec .AND. osedim_beard)
THEN
-
-
- 468 IF (prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
- 469 gmask(jij,jk) = .true.
-
- 471 gmask(jij,jk) = .false.
-
-
-
-
-
-
+
+ 397 LOGICAL :: GPRESENT_PFPR
+
+ 399 REAL :: ZZWLBDC, ZZRAY, ZZT, ZZWLBDA, ZZCC
+
+ 401 REAL :: ZFSED, ZEXSED
+
+ 403 REAL,
DIMENSION(D%NIJT) :: ZMAX_TSTEP
+ 404 REAL,
DIMENSION(SIZE(ICED%XRTMIN)) :: ZRSMIN
+ 405 REAL,
DIMENSION(D%NIJT) :: ZREMAINT
+ 406 LOGICAL :: ZANYREMAINT
+ 407 REAL,
DIMENSION(D%NIJT, 0:D%NKT+1) :: ZWSED
+ 408 INTEGER :: IKTB, IKTE, IKB, IKL, IIJE, IIJB
+ 409 REAL(KIND=jphook) :: zhook_handle
+
+
+
+
+
+
+
+
+ 418 REAL,
DIMENSION(MERGE(D%NIJT,0,OELEC),MERGE(D%NKT+2,0,OELEC)) :: &
+
+
+ 421 REAL,
DIMENSION(MERGE(D%NIJT,0,OSEDIM_BEARD),MERGE(D%NKT,0,OSEDIM_BEARD)) :: &
+
+
+ 424 REAL,
DIMENSION(MERGE(D%NIJT,0,OSEDIM_BEARD),MERGE(D%NKT,0,OSEDIM_BEARD)) :: &
+
+
+ 427 LOGICAL,
DIMENSION(MERGE(D%NIJT,0,OSEDIM_BEARD),MERGE(D%NKT,0,OSEDIM_BEARD)) :: GMASK
+
+ 429 REAL :: ZFQSED, ZEXQSED
+ 430 REAL :: ZEXMIN, ZEXMAX
+
+
+
+
+
+
+ 437 IF (lhook)
CALL dr_hook(
'ICE4_SEDIMENTATION_SPLIT:INTERNAL_SEDIM_SPLIT', 0, zhook_handle)
+
+
+
+
+
+
+
+
+ 446 IF (kspe<2 .OR. kspe>7)
CALL print_msg(nverb_fatal,
'GEN',
'INTERNAL_SEDIM_SPLIT',
'invalid species (KSPE variable)')
+
+ 448 IF (
PRESENT(pfpr))
THEN
+ 449 gpresent_pfpr = .true.
+
+ 451 gpresent_pfpr = .false.
+
+
+
+
+ 456 zrsmin = iced%XRTMIN * zinvtstep
+
+ 458 zremaint(iijb:iije) = ptstep
+
+
+ 461 DO WHILE (zanyremaint)
+
+
+ 464 IF (oelec .AND. osedim_beard)
THEN
+
+
+ 467 IF (prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
+ 468 gmask(jij,jk) = .true.
+
+ 470 gmask(jij,jk) = .false.
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
- 492 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
- 493 zzwlbdc = plbc(jij,jk) * pconc3d(jij,jk) / &
- 494 &(prhodref(jij,jk) * prxt(jij,jk))
- 495 zzwlbdc = zzwlbdc**iced%XLBEXC
- 496 zzray = pray(jij,jk) / zzwlbdc
- 497 zzt = ptht(jij,jk) * (ppabst(jij,jk)/cst%XP00)**(cst%XRD/cst%XCPD)
- 498 zzwlbda = 6.6e-8*(101325./ppabst(jij,jk))*(zzt/293.15)
- 499 zzcc = iced%XCC*(1.+1.26*zzwlbda/zzray)
- 500 zwsed(jij, jk) = prhodref(jij,jk)**(-iced%XCEXVT +1 ) * &
- 501 &zzwlbdc**(-iced%XDC)*zzcc*pfsedc(jij,jk) * prxt(jij,jk)
-
-
-
- 505 zext = pqxt(jij,jk) / elecp%XFQUPDC * prhodref(jij,jk)
- 506 IF (abs(zext) .GT. elecp%XECMIN)
THEN
- 507 zwsedq(jij,jk) = elecp%XFQSEDC * zext * pconc3d(jij,jk) * &
- 508 prhodref(jij,jk)**(-iced%XCEXVT) * &
- 509 zzcc * zzwlbdc**(-elecp%XEXQSEDC)
- 510 IF (osedim_beard) zlbda3(jij,jk) = zzwlbdc
-
-
-
-
-
-
- 517 IF (oelec .AND. osedim_beard)
THEN
-
- 519 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
-
-
- 522 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
- 523 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
-
-
-
-
-
-
-
-
-
-
-
-
- 536 IF(prxt(jij, jk) .GT. max(iced%XRTMIN(4), 1.0e-7) .AND. zremaint(jij)>0.)
THEN
- 537 zwsed(jij, jk) = icep%XFSEDI * prxt(jij, jk) * &
- 538 & prhodref(jij,jk)**(1.-iced%XCEXVT) * &
- 539 & max( 0.05e6,-0.15319e6-0.021454e6* &
- 540 & alog(prhodref(jij,jk)*prxt(jij,jk)) )**icep%XEXCSEDI
-
-
- 543 znci = elecp%XFCI * prhodref(jij,jk) * prxt(jij,jk) * &
- 544 max(0.05e6,-0.15319e6-0.021454e6*alog(prhodref(jij,jk)*prxt(jij,jk)))**3.
-
- 546 zext = pqxt(jij,jk) / elecp%XFQUPDI * &
- 547 (prhodref(jij,jk) * prxt(jij,jk))**(-elecp%XEXFQUPDI) * &
- 548 znci**(elecp%XEXFQUPDI-1.)
- 549 IF (abs(zext) .GT. elecp%XEIMIN)
THEN
- 550 zwsedq(jij,jk) = elecp%XFQSEDI * zext * prxt(jij,jk) * &
- 551 prhodref(jij,jk)**(1.-iced%XCEXVT) * &
- 552 max( 0.05e6,-0.15319e6-0.021454e6* &
- 553 alog(prhodref(jij,jk)*prxt(jij,jk)) )**(3.*(1-elecp%XEXQSEDI))
- 554 IF (osedim_beard) zlbda3(jij,jk) = (2.14e-3 *
momg(iced%XALPHAI,iced%XNUI,1.7) * &
- 555 znci / (prhodref(jij,jk) * prxt(jij,jk)))**0.588235
-
-
-
-
-
- 561 IF (oelec .AND. osedim_beard)
THEN
-
- 563 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
-
-
- 566 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
- 567 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 584 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
- 585 zwsed(jij, jk) = zfsed * prxt(jij, jk)**zexsed &
- 586 & * prhodref(jij, jk)**(zexsed-iced%XCEXVT)
-
-
-
-
-
-
- 593 IF(prxt(jij,jk)> iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
- 594 IF (parami%LSNOW_T .AND. pt(jij,jk)>263.15)
THEN
- 595 zlbda = max(min(iced%XLBDAS_MAX, 10**(14.554-0.0423*pt(jij,jk))),iced%XLBDAS_MIN)*iced%XTRANS_MP_GAMMAS
- 596 ELSE IF (parami%LSNOW_T)
THEN
- 597 zlbda = max(min(iced%XLBDAS_MAX, 10**(6.226 -0.0106*pt(jij,jk))),iced%XLBDAS_MIN)*iced%XTRANS_MP_GAMMAS
-
- 599 zlbda=max(min(iced%XLBDAS_MAX, iced%XLBS * ( prhodref(jij,jk) * prxt(jij,jk) )**iced%XLBEXS),iced%XLBDAS_MIN)
-
- 601 zwsed(jij, jk) = icep%XFSEDS * &
-
- 603 & prhodref(jij,jk)**(1-iced%XCEXVT) * &
- 604 & (1 + (iced%XFVELOS/zlbda)**iced%XALPHAS)** (-iced%XNUS+icep%XEXSEDS/iced%XALPHAS) * &
- 605 & zlbda ** (iced%XBS+icep%XEXSEDS)
- 606 IF (oelec .AND. zlbda > 0.)
THEN
-
- 608 zext = prhodref(jij,jk) * pqxt(jij,jk) / (elecp%XFQUPDS * zlbda**(iced%XCXS-elecd%XFS))
- 609 zext = sign( min(abs(zext), elecp%XESMAX), zext)
- 610 IF (abs(zext) > elecp%XESMIN)
THEN
- 611 zwsedq(jij,jk) = elecp%XFQSEDS * zext * prxt(jij,jk)**elecp%XEXQSEDS &
- 612 * prhodref(jij,jk)**(elecp%XEXQSEDS-iced%XCEXVT)
- 613 IF (osedim_beard) zlbda3(jij,jk) = zlbda
-
-
-
-
-
- 619 IF (oelec .AND. osedim_beard)
THEN
-
- 621 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
-
-
- 624 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
- 625 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 643 WRITE(yspe,
'( I10 )' ) kspe
- 644 CALL print_msg(nverb_fatal,
'GEN',
'ICE4_SEDIMENTATION_SPLIT',
'no sedimentation parameter for KSPE='//trim(yspe) )
-
-
-
-
-
- 650 zfqsed = elecp%XFQSEDR
- 651 zexqsed = elecp%XEXQSEDR
- 652 zexmin = elecp%XERMIN
- 653 zexmax = elecp%XERMAX
-
-
- 656 zfqupdx = elecp%XFQUPDR
-
-
-
- 660 zfqsed = elecp%XFQSEDG
- 661 zexqsed = elecp%XEXQSEDG
- 662 zexmin = elecp%XEGMIN
- 663 zexmax = elecp%XEGMAX
-
-
- 666 zfqupdx = elecp%XFQUPDG
-
-
-
- 670 zfqsed = elecp%XFQSEDH
- 671 zexqsed = elecp%XEXQSEDH
- 672 zexmin = elecp%XEHMIN
- 673 zexmax = elecp%XEHMAX
-
-
- 676 zfqupdx = elecp%XFQUPDH
-
-
-
- 680 write( yspe,
'( I10 )' ) kspe
- 681 call print_msg( nverb_fatal,
'GEN',
'ICE4_SEDIMENTATION_SPLIT',
'no sedimentation parameter for KSPE='//trim(yspe) )
-
-
-
-
-
-
-
-
-
-
- 692 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
- 693 zwsed(jij, jk) = zfsed * prxt(jij, jk)**zexsed &
- 694 & * prhodref(jij, jk)**(zexsed-iced%XCEXVT)
-
-
- 697 zlbda = zlbx * (prhodref(jij,jk) * max(prxt(jij,jk), iced%XRTMIN(kspe)))**zlbexx
-
-
- 700 zext = prhodref(jij,jk) * pqxt(jij,jk) / (zfqupdx * zlbda**(zcxx-zfx))
- 701 zext = sign( min(abs(zext), zexmax), zext)
-
- 703 IF (abs(zext) > zexmin)
THEN
- 704 zwsedq(jij,jk) = zfqsed * zext * prxt(jij,jk)**zexqsed &
- 705 * prhodref(jij,jk)**(zexqsed-iced%XCEXVT)
- 706 IF (osedim_beard) zlbda3(jij,jk) = zlbda
-
-
-
-
-
- 712 IF (oelec .AND. osedim_beard)
THEN
-
- 714 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
-
-
- 717 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
- 718 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
-
-
-
-
- 723 zmax_tstep(:) = zremaint(:)
-
-
- 726 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zwsed(jij, jk)>1.e-20 .AND. zremaint(jij)>0.)
THEN
- 727 zmax_tstep(jij) = min(zmax_tstep(jij), parami%XSPLIT_MAXCFL * prhodref(jij, jk) * &
- 728 & prxt(jij, jk) * pdzz(jij, jk) / zwsed(jij, jk))
-
-
-
-
-
- 734 zremaint(jij) = zremaint(jij) - zmax_tstep(jij)
- 735 pinprx(jij) = pinprx(jij) + zwsed(jij,ikb) / cst%XRHOLW * (zmax_tstep(jij) * zinvtstep)
-
-
-
-
- 740 zmrchange = zmax_tstep(jij) * poorhodz(jij,jk)*(zwsed(jij,jk+ikl)-zwsed(jij,jk))
- 741 prxt(jij,jk) = prxt(jij,jk) + zmrchange + pprxs(jij,jk) * zmax_tstep(jij)
- 742 prxs(jij,jk) = prxs(jij,jk) + zmrchange * zinvtstep
- 743 IF (gpresent_pfpr)
THEN
- 744 pfpr(jij,jk,kspe) = pfpr(jij,jk,kspe) + zwsed(jij,jk) * (zmax_tstep(jij) * zinvtstep)
-
-
- 747 zqchange = zmax_tstep(jij) * poorhodz(jij,jk) * (zwsedq(jij,jk+ikl) - zwsedq(jij,jk))
- 748 pqxt(jij,jk) = pqxt(jij,jk) + zqchange + ppqxs(jij,jk) * zmax_tstep(jij)
- 749 pqxs(jij,jk) = pqxs(jij,jk) + zqchange * zinvtstep
-
-
-
-
- 754 zanyremaint = .false.
-
- 756 IF(zremaint(jij)>0.)
THEN
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 491 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
+ 492 zzwlbdc = plbc(jij,jk) * pconc3d(jij,jk) / &
+ 493 &(prhodref(jij,jk) * prxt(jij,jk))
+ 494 zzwlbdc = zzwlbdc**iced%XLBEXC
+ 495 zzray = pray(jij,jk) / zzwlbdc
+ 496 zzt = ptht(jij,jk) * (ppabst(jij,jk)/cst%XP00)**(cst%XRD/cst%XCPD)
+ 497 zzwlbda = 6.6e-8*(101325./ppabst(jij,jk))*(zzt/293.15)
+ 498 zzcc = iced%XCC*(1.+1.26*zzwlbda/zzray)
+ 499 zwsed(jij, jk) = prhodref(jij,jk)**(-iced%XCEXVT +1 ) * &
+ 500 &zzwlbdc**(-iced%XDC)*zzcc*pfsedc(jij,jk) * prxt(jij,jk)
+
+
+
+ 504 zext = pqxt(jij,jk) / elecp%XFQUPDC * prhodref(jij,jk)
+ 505 IF (abs(zext) .GT. elecp%XECMIN)
THEN
+ 506 zwsedq(jij,jk) = elecp%XFQSEDC * zext * pconc3d(jij,jk) * &
+ 507 prhodref(jij,jk)**(-iced%XCEXVT) * &
+ 508 zzcc * zzwlbdc**(-elecp%XEXQSEDC)
+ 509 IF (osedim_beard) zlbda3(jij,jk) = zzwlbdc
+
+
+
+
+
+
+ 516 IF (oelec .AND. osedim_beard)
THEN
+
+ 518 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
+
+
+ 521 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
+ 522 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
+
+
+
+
+
+
+
+
+
+
+
+
+ 535 IF(prxt(jij, jk) .GT. max(iced%XRTMIN(4), 1.0e-7) .AND. zremaint(jij)>0.)
THEN
+ 536 zwsed(jij, jk) = icep%XFSEDI * prxt(jij, jk) * &
+ 537 & prhodref(jij,jk)**(1.-iced%XCEXVT) * &
+ 538 & max( 0.05e6,-0.15319e6-0.021454e6* &
+ 539 & alog(prhodref(jij,jk)*prxt(jij,jk)) )**icep%XEXCSEDI
+
+
+ 542 znci = elecp%XFCI * prhodref(jij,jk) * prxt(jij,jk) * &
+ 543 max(0.05e6,-0.15319e6-0.021454e6*alog(prhodref(jij,jk)*prxt(jij,jk)))**3.
+
+ 545 zext = pqxt(jij,jk) / elecp%XFQUPDI * &
+ 546 (prhodref(jij,jk) * prxt(jij,jk))**(-elecp%XEXFQUPDI) * &
+ 547 znci**(elecp%XEXFQUPDI-1.)
+ 548 IF (abs(zext) .GT. elecp%XEIMIN)
THEN
+ 549 zwsedq(jij,jk) = elecp%XFQSEDI * zext * prxt(jij,jk) * &
+ 550 prhodref(jij,jk)**(1.-iced%XCEXVT) * &
+ 551 max( 0.05e6,-0.15319e6-0.021454e6* &
+ 552 alog(prhodref(jij,jk)*prxt(jij,jk)) )**(3.*(1-elecp%XEXQSEDI))
+ 553 IF (osedim_beard) zlbda3(jij,jk) = (2.14e-3 *
momg(iced%XALPHAI,iced%XNUI,1.7) * &
+ 554 znci / (prhodref(jij,jk) * prxt(jij,jk)))**0.588235
+
+
+
+
+
+ 560 IF (oelec .AND. osedim_beard)
THEN
+
+ 562 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
+
+
+ 565 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
+ 566 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 583 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
+ 584 zwsed(jij, jk) = zfsed * prxt(jij, jk)**zexsed &
+ 585 & * prhodref(jij, jk)**(zexsed-iced%XCEXVT)
+
+
+
+
+
+
+ 592 IF(prxt(jij,jk)> iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
+ 593 IF (parami%LSNOW_T .AND. pt(jij,jk)>263.15)
THEN
+ 594 zlbda = max(min(iced%XLBDAS_MAX, 10**(14.554-0.0423*pt(jij,jk))),iced%XLBDAS_MIN)*iced%XTRANS_MP_GAMMAS
+ 595 ELSE IF (parami%LSNOW_T)
THEN
+ 596 zlbda = max(min(iced%XLBDAS_MAX, 10**(6.226 -0.0106*pt(jij,jk))),iced%XLBDAS_MIN)*iced%XTRANS_MP_GAMMAS
+
+ 598 zlbda=max(min(iced%XLBDAS_MAX, iced%XLBS * ( prhodref(jij,jk) * prxt(jij,jk) )**iced%XLBEXS),iced%XLBDAS_MIN)
+
+ 600 zwsed(jij, jk) = icep%XFSEDS * &
+
+ 602 & prhodref(jij,jk)**(1-iced%XCEXVT) * &
+ 603 & (1 + (iced%XFVELOS/zlbda)**iced%XALPHAS)** (-iced%XNUS+icep%XEXSEDS/iced%XALPHAS) * &
+ 604 & zlbda ** (iced%XBS+icep%XEXSEDS)
+ 605 IF (oelec .AND. zlbda > 0.)
THEN
+
+ 607 zext = prhodref(jij,jk) * pqxt(jij,jk) / (elecp%XFQUPDS * zlbda**(iced%XCXS-elecd%XFS))
+ 608 zext = sign( min(abs(zext), elecp%XESMAX), zext)
+ 609 IF (abs(zext) > elecp%XESMIN)
THEN
+ 610 zwsedq(jij,jk) = elecp%XFQSEDS * zext * prxt(jij,jk)**elecp%XEXQSEDS &
+ 611 * prhodref(jij,jk)**(elecp%XEXQSEDS-iced%XCEXVT)
+ 612 IF (osedim_beard) zlbda3(jij,jk) = zlbda
+
+
+
+
+
+ 618 IF (oelec .AND. osedim_beard)
THEN
+
+ 620 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
+
+
+ 623 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
+ 624 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 642 CALL print_msg(nverb_fatal,
'GEN',
'ICE4_SEDIMENTATION_SPLIT',
'no sedimentation parameter for KSPE')
+
+
+
+
+
+ 648 zfqsed = elecp%XFQSEDR
+ 649 zexqsed = elecp%XEXQSEDR
+ 650 zexmin = elecp%XERMIN
+ 651 zexmax = elecp%XERMAX
+
+
+ 654 zfqupdx = elecp%XFQUPDR
+
+
+
+ 658 zfqsed = elecp%XFQSEDG
+ 659 zexqsed = elecp%XEXQSEDG
+ 660 zexmin = elecp%XEGMIN
+ 661 zexmax = elecp%XEGMAX
+
+
+ 664 zfqupdx = elecp%XFQUPDG
+
+
+
+ 668 zfqsed = elecp%XFQSEDH
+ 669 zexqsed = elecp%XEXQSEDH
+ 670 zexmin = elecp%XEHMIN
+ 671 zexmax = elecp%XEHMAX
+
+
+ 674 zfqupdx = elecp%XFQUPDH
+
+
+
+ 678 CALL print_msg( nverb_fatal,
'GEN',
'ICE4_SEDIMENTATION_SPLIT',
'no sedimentation parameter for KSPE')
+
+
+
+
+
+
+
+
+
+
+ 689 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zremaint(jij)>0.)
THEN
+ 690 zwsed(jij, jk) = zfsed * prxt(jij, jk)**zexsed &
+ 691 & * prhodref(jij, jk)**(zexsed-iced%XCEXVT)
+
+
+ 694 zlbda = zlbx * (prhodref(jij,jk) * max(prxt(jij,jk), iced%XRTMIN(kspe)))**zlbexx
+
+
+ 697 zext = prhodref(jij,jk) * pqxt(jij,jk) / (zfqupdx * zlbda**(zcxx-zfx))
+ 698 zext = sign( min(abs(zext), zexmax), zext)
+
+ 700 IF (abs(zext) > zexmin)
THEN
+ 701 zwsedq(jij,jk) = zfqsed * zext * prxt(jij,jk)**zexqsed &
+ 702 * prhodref(jij,jk)**(zexqsed-iced%XCEXVT)
+ 703 IF (osedim_beard) zlbda3(jij,jk) = zlbda
+
+
+
+
+
+ 709 IF (oelec .AND. osedim_beard)
THEN
+
+ 711 prxt, pqxt, pefieldw, zlbda3, zbeardcoeff, iced=iced)
+
+
+ 714 zwsed(jij,jk) = zwsed(jij,jk) * zbeardcoeff(jij,jk)
+ 715 zwsedq(jij,jk) = zwsedq(jij,jk) * zbeardcoeff(jij,jk)
+
+
+
+
+ 720 zmax_tstep(:) = zremaint(:)
+
+
+ 723 IF(prxt(jij,jk)>iced%XRTMIN(kspe) .AND. zwsed(jij, jk)>1.e-20 .AND. zremaint(jij)>0.)
THEN
+ 724 zmax_tstep(jij) = min(zmax_tstep(jij), parami%XSPLIT_MAXCFL * prhodref(jij, jk) * &
+ 725 & prxt(jij, jk) * pdzz(jij, jk) / zwsed(jij, jk))
+
+
+
+
+
+ 731 zremaint(jij) = zremaint(jij) - zmax_tstep(jij)
+ 732 pinprx(jij) = pinprx(jij) + zwsed(jij,ikb) / cst%XRHOLW * (zmax_tstep(jij) * zinvtstep)
+
+
+
+
+ 737 zmrchange = zmax_tstep(jij) * poorhodz(jij,jk)*(zwsed(jij,jk+ikl)-zwsed(jij,jk))
+ 738 prxt(jij,jk) = prxt(jij,jk) + zmrchange + pprxs(jij,jk) * zmax_tstep(jij)
+ 739 prxs(jij,jk) = prxs(jij,jk) + zmrchange * zinvtstep
+ 740 IF (gpresent_pfpr)
THEN
+ 741 pfpr(jij,jk,kspe) = pfpr(jij,jk,kspe) + zwsed(jij,jk) * (zmax_tstep(jij) * zinvtstep)
+
+
+ 744 zqchange = zmax_tstep(jij) * poorhodz(jij,jk) * (zwsedq(jij,jk+ikl) - zwsedq(jij,jk))
+ 745 pqxt(jij,jk) = pqxt(jij,jk) + zqchange + ppqxs(jij,jk) * zmax_tstep(jij)
+ 746 pqxs(jij,jk) = pqxs(jij,jk) + zqchange * zinvtstep
+
+
+
+
+ 751 zanyremaint = .false.
+
+ 753 IF(zremaint(jij)>0.)
THEN
+
+
+
+
+
+ 759 IF (lhook)
CALL dr_hook(
'ICE4_SEDIMENTATION_SPLIT:INTERNAL_SEDIM_SPLIT', 1, zhook_handle)
+
- 762 IF (lhook)
CALL dr_hook(
'ICE4_SEDIMENTATION_SPLIT:INTERNAL_SEDIM_SPLIT', 1, zhook_handle)
-
-
-
-
+
+