11 |
I H,rmud,Edsf,Essf,a_k,bt_k,bb_k,kmax,niter, |
I H,rmud,Edsf,Essf,a_k,bt_k,bb_k,kmax,niter, |
12 |
O Edbot,Esbot,Eubot,Eutop, |
O Edbot,Esbot,Eubot,Eutop, |
13 |
O tirrq,tirrwq, |
O tirrq,tirrwq, |
14 |
|
O c1out, c2out, |
15 |
I myThid) |
I myThid) |
16 |
|
|
17 |
C !DESCRIPTION: |
C !DESCRIPTION: |
75 |
_RL Edbot(tlam,Nr),Esbot(tlam,Nr),Eubot(tlam,Nr),Eutop(tlam,Nr) |
_RL Edbot(tlam,Nr),Esbot(tlam,Nr),Eubot(tlam,Nr),Eutop(tlam,Nr) |
76 |
_RL tirrq(Nr) |
_RL tirrq(Nr) |
77 |
_RL tirrwq(tlam,Nr) |
_RL tirrwq(tlam,Nr) |
78 |
|
_RL c1out(tlam,Nr), c2out(tlam,Nr) |
79 |
|
|
80 |
#ifdef DAR_RADTRANS |
#ifdef DAR_RADTRANS |
81 |
|
|
117 |
Edbot(nl,k) = 0.0 |
Edbot(nl,k) = 0.0 |
118 |
Esbot(nl,k) = 0.0 |
Esbot(nl,k) = 0.0 |
119 |
Eubot(nl,k) = 0.0 |
Eubot(nl,k) = 0.0 |
120 |
|
c1out(nl,k) = 0.0 |
121 |
|
c2out(nl,k) = 0.0 |
122 |
ENDDO |
ENDDO |
123 |
IF (Edsf(nl) .GE. darwin_radmodThresh .OR. |
IF (Edsf(nl) .GE. darwin_radmodThresh .OR. |
124 |
& Essf(nl) .GE. darwin_radmodThresh) THEN |
& Essf(nl) .GE. darwin_radmodThresh) THEN |
164 |
Estop(nl,k+1) = MAX(0., c2*expAsdr(k) + x(k)*Edbot(nl,k)) |
Estop(nl,k+1) = MAX(0., c2*expAsdr(k) + x(k)*Edbot(nl,k)) |
165 |
Eubot(nl,k) = MAX(0., R2(k)*c2*expAsdr(k) + y(k)*Edbot(nl,k)) |
Eubot(nl,k) = MAX(0., R2(k)*c2*expAsdr(k) + y(k)*Edbot(nl,k)) |
166 |
Eutop(nl,k) = R2(k)*c2 + y(k)*Edtop(nl,k) |
Eutop(nl,k) = R2(k)*c2 + y(k)*Edtop(nl,k) |
167 |
|
c1out(nl,k) = 0. |
168 |
|
c2out(nl,k) = c2 |
169 |
ENDDO |
ENDDO |
170 |
C Aas b.c. in bottom layer |
C Aas b.c. in bottom layer |
171 |
c2 = Estop(nl,kbot) - x(kbot)*Edtop(nl,kbot) |
c2 = Estop(nl,kbot) - x(kbot)*Edtop(nl,kbot) |
172 |
Eutop(nl,kbot) = R2(kbot)*c2 + y(kbot)*Edtop(nl,kbot) |
Eutop(nl,kbot) = R2(kbot)*c2 + y(kbot)*Edtop(nl,kbot) |
173 |
|
c1out(nl,kbot) = 0. |
174 |
|
c2out(nl,kbot) = c2 |
175 |
|
|
176 |
c improve solution iteratively |
c improve solution iteratively |
177 |
DO iter=1,niter |
DO iter=1,niter |
198 |
Esnew = expAsdr(k)*c2 + c1 + x(k)*Edbot(nl,k) |
Esnew = expAsdr(k)*c2 + c1 + x(k)*Edbot(nl,k) |
199 |
Estop(nl,k+1) = MAX(0., Esnew) |
Estop(nl,k+1) = MAX(0., Esnew) |
200 |
Eutop(nl,k) = R2(k)*c2+R1(k)*expmAudr(k)*c1+y(k)*Edtop(nl,k) |
Eutop(nl,k) = R2(k)*c2+R1(k)*expmAudr(k)*c1+y(k)*Edtop(nl,k) |
201 |
|
c1out(nl,k) = c1 |
202 |
|
c2out(nl,k) = c2 |
203 |
ENDDO |
ENDDO |
204 |
C Aas b.c. in bottom layer |
C Aas b.c. in bottom layer |
205 |
c2 = Estop(nl,kbot) - x(kbot)*Edtop(nl,kbot) |
c2 = Estop(nl,kbot) - x(kbot)*Edtop(nl,kbot) |
206 |
Eutop(nl,kbot) = R2(kbot)*c2 + y(kbot)*Edtop(nl,kbot) |
Eutop(nl,kbot) = R2(kbot)*c2 + y(kbot)*Edtop(nl,kbot) |
207 |
|
c1out(nl,kbot) = 0. |
208 |
|
c2out(nl,kbot) = c2 |
209 |
C enddo iter |
C enddo iter |
210 |
ENDDO |
ENDDO |
211 |
|
|