entr_s(i,k) = dsigspread(i) - sigmaw(i)*(1.-sigmaw(i))*(deltomg(i,k+1)-deltomg(i,k)) / &
(ph(i,k)-ph(i,k+1))
print *,'dadv, k, dp_deltomg(i,k), (deltomg(i,k)-deltomg(i,k+1))/(ph(i,k)-ph(i,k+1)) ', & k, dp_deltomg(i,k), (deltomg(i,k)-deltomg(i,k+1))/(ph(i,k)-ph(i,k+1))
Building the tridiagonal matrix printing the tridiagonal matrix ! First row k = 1 print 1789, k, aa11(1,1), aa12(1,1), bb11(1,1), bb12(1,1) print 1789, k, aa21(1,1), aa22(1,1), bb21(1,1), bb22(1,1) 1789 FORMAT(1X, I3, 3(4X, 2E13.5)) coef = dtime/(ph(1,k)-ph(1,k+1)) print *,'rr22(1), coef, dsigspread(1), sigmaw(1), deltomg(1,1), deltomg(1,2) ', & rr22(1), coef, dsigspread(1), sigmaw(1), deltomg(1,1), deltomg(1,2)
! Rows 2 to klev-1 DO k = 2, klev-1 print 1789, k, cc11(1,k), cc12(1,k), aa11(1,k), aa12(1,k), bb11(1,k), bb12(1,k) print 1789, k, cc21(1,k), cc22(1,k), aa21(1,k), aa22(1,k), bb21(1,k), bb22(1,k) coef = dtime/(ph(1,k)-ph(1,k+1)) print *,'rr22(1), coef, dsigspread(1), sigmaw(1), deltomg(1,k), deltomg(1,k+1) ', & rr22(1), coef, dsigspread(1), sigmaw(1), deltomg(1,k), deltomg(1,k+1) ENDDO
! Row klev print 1789, klev, cc11(1,klev), cc12(1,klev), aa11(1,klev), aa12(1,klev) print 1789, klev, cc21(1,klev), cc22(1,klev), aa21(1,klev), aa22(1,klev) coef = dtime/(ph(1,klev)-ph(1,klev+1)) print *,'rr22(1), coef, dsigspread(1), sigmaw(1), deltomg(1,klev) ', & rr22(1), coef, dsigspread(1), sigmaw(1), deltomg(1,klev)
Downward loop
Upward loop
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! Verification de l'inversion !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
DO i = 1,klon
xt1inv(i,1) = aa11(i,1)*th1(i,1) + aa12(i,1)*th2(i,1) + bb11(i,1)*th1(i,2) + bb12(i,1)*th2(i,2)
xt2inv(i,1) = aa21(i,1)*th1(i,1) + aa22(i,1)*th2(i,1) + bb21(i,1)*th1(i,2) + bb22(i,1)*th2(i,2)
xq1inv(i,1) = aa11(i,1)*q1(i,1) + aa12(i,1)*q2(i,1) + bb11(i,1)*q1(i,2) + bb12(i,1)*q2(i,2)
xq2inv(i,1) = aa21(i,1)*q1(i,1) + aa22(i,1)*q2(i,1) + bb21(i,1)*q1(i,2) + bb22(i,1)*q2(i,2)
ENDDO
DO k = 2, klev-1
DO i = 1,klon
xt1inv(i,k) = aa11(i,k)*th1(i,k) + aa12(i,k)*th2(i,k) + bb11(i,k)*th1(i,k+1) + bb12(i,k)*th2(i,k+1) &
+ cc11(i,k)*th1(i,k-1) + cc12(i,k)*th2(i,k-1)
xt2inv(i,k) = aa21(i,k)*th1(i,k) + aa22(i,k)*th2(i,k) + bb21(i,k)*th1(i,k+1) + bb22(i,k)*th2(i,k+1) &
+ cc21(i,k)*th1(i,k-1) + cc22(i,k)*th2(i,k-1)
xq1inv(i,k) = aa11(i,k)*q1(i,k) + aa12(i,k)*q2(i,k) + bb11(i,k)*q1(i,k+1) + bb12(i,k)*q2(i,k+1) &
+ cc11(i,k)*q1(i,k-1) + cc12(i,k)*q2(i,k-1)
xq2inv(i,k) = aa21(i,k)*q1(i,k) + aa22(i,k)*q2(i,k) + bb21(i,k)*q1(i,k+1) + bb22(i,k)*q2(i,k+1) &
+ cc21(i,k)*q1(i,k-1) + cc22(i,k)*q2(i,k-1)
ENDDO
ENDDO
DO i = 1,klon
xt1inv(i,klev) = aa11(i,klev)*th1(i,klev) + aa12(i,klev)*th2(i,klev) + cc11(i,klev)*th1(i,klev-1) + cc12(i,klev)*th2(i,klev-1)
xt2inv(i,klev) = aa21(i,klev)*th1(i,klev) + aa22(i,klev)*th2(i,klev) + cc21(i,klev)*th1(i,klev-1) + cc22(i,klev)*th2(i,klev-1)
xq1inv(i,klev) = aa11(i,klev)*q1(i,klev) + aa12(i,klev)*q2(i,klev) + cc11(i,klev)*q1(i,klev-1) + cc12(i,klev)*q2(i,klev-1)
xq2inv(i,klev) = aa21(i,klev)*q1(i,klev) + aa22(i,klev)*q2(i,klev) + cc21(i,klev)*q1(i,klev-1) + cc22(i,klev)*q2(i,klev-1)
ENDDO
DO k = 1, 20
IF (abs(xt1inv(1,k)-xt1(1,k)) .GT. 1.e-15*xt1(1,k) ) THEN
print *,'wake_dadv, k, xt1inv(1,k), xt1(1,k), xt1inv(1,k)-xt1(1,k) ', &
k, xt1inv(1,k), xt1(1,k), xt1inv(1,k)-xt1(1,k)
ENDIF
IF (abs(xt2inv(1,k)-xt2(1,k)) .GT. 1.e-15*xt2(1,k) ) THEN
print *,'wake_dadv, k, xt2inv(1,k), xt2(1,k), xt2inv(1,k)-xt2(1,k) ', &
k, xt2inv(1,k), xt2(1,k), xt2inv(1,k)-xt2(1,k)
ENDIF
IF (abs(xq1inv(1,k)-xq1(1,k)) .GT. 1.e-15*xq1(1,k) ) THEN
print *,'wake_dadv, k, xq1inv(1,k), xq1(1,k), xq1inv(1,k)-xq1(1,k) ', &
k, xq1inv(1,k), xq1(1,k), xq1inv(1,k)-xq1(1,k)
ENDIF
IF (abs(xq2inv(1,k)-xq2(1,k)) .GT. 1.e-15*xq2(1,k) ) THEN
print *,'wake_dadv, k, xq2inv(1,k), xq2(1,k), xq2inv(1,k)-xq2(1,k) ', &
k, xq2inv(1,k), xq2(1,k), xq2inv(1,k)-xq2(1,k)
ENDIF
ENDDO
! nrlmd
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | klon | |||
| integer, | intent(in) | :: | klev | |||
| real, | intent(in) | :: | dtime | |||
| real, | intent(in), | DIMENSION (klon, klev+1) | :: | ph | ||
| real, | intent(in), | DIMENSION (klon, klev) | :: | ppi | ||
| logical, | intent(in), | DIMENSION (klon) | :: | wk_adv | ||
| integer, | intent(in), | DIMENSION (klon) | :: | kupper | ||
| real, | intent(in), | DIMENSION (klon, klev) | :: | deltomg | ||
| real, | intent(in), | DIMENSION (klon, klev) | :: | dp_deltomg | ||
| real, | intent(in), | DIMENSION (klon) | :: | sigmaw | ||
| real, | intent(in), | DIMENSION (klon) | :: | dsigspread | ||
| real, | intent(in), | DIMENSION (klon, klev) | :: | thw | ||
| real, | intent(in), | DIMENSION (klon, klev) | :: | thx | ||
| real, | intent(in), | DIMENSION (klon, klev) | :: | qw | ||
| real, | intent(in), | DIMENSION (klon, klev) | :: | qx | ||
| real, | intent(out), | DIMENSION (klon, klev) | :: | d_deltat_dadv | ||
| real, | intent(out), | DIMENSION (klon, klev) | :: | d_deltaq_dadv | ||
| real, | intent(out), | DIMENSION (klon, klev) | :: | d_tb_dadv | ||
| real, | intent(out), | DIMENSION (klon, klev) | :: | d_qb_dadv |