1 SUBROUTINE rrtm_rtrn1a_140gp (KLEV,K_ISTART,K_IEND,K_ICLDLYR,P_CLDFRAC,P_TAUCLD,P_ABSS1,&
2 & p_od,p_tausf1,p_clfnet,p_clhtr,p_fnet,p_htr,p_totdfluc,p_totdflux,p_totufluc,p_totuflux,&
3 & p_tavel,pz,p_tz,p_tbound,pfrac,p_semiss,p_semislw,k_ireflect)
34 INTEGER(KIND=JPIM),
INTENT(IN) :: KLEV
35 INTEGER(KIND=JPIM),
INTENT(IN) :: K_ISTART
36 INTEGER(KIND=JPIM),
INTENT(IN) :: K_IEND
37 INTEGER(KIND=JPIM),
INTENT(IN) :: K_ICLDLYR(
jplay)
38 REAL(KIND=JPRB) ,
INTENT(IN) :: P_CLDFRAC(
jplay)
39 REAL(KIND=JPRB) :: Z_CLDFRAC(
jplay)
40 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TAUCLD(
jplay,
jpband)
41 REAL(KIND=JPRB) ,
INTENT(IN) :: P_ABSS1(
jpgpt*
jplay)
42 REAL(KIND=JPRB) ,
INTENT(IN) :: P_OD(
jpgpt,
jplay)
43 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TAUSF1(
jpgpt*
jplay)
44 REAL(KIND=JPRB) :: P_CLFNET(0:
jplay)
45 REAL(KIND=JPRB) :: P_CLHTR(0:
jplay)
46 REAL(KIND=JPRB) :: P_FNET(0:
jplay)
47 REAL(KIND=JPRB) :: P_HTR(0:
jplay)
48 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TOTDFLUC(0:
jplay)
49 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TOTDFLUX(0:
jplay)
50 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TOTUFLUC(0:
jplay)
51 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_TOTUFLUX(0:
jplay)
52 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TAVEL(
jplay)
53 REAL(KIND=JPRB) :: PZ(0:
jplay)
54 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TZ(0:
jplay)
55 REAL(KIND=JPRB) ,
INTENT(IN) :: P_TBOUND
56 REAL(KIND=JPRB) ,
INTENT(IN) :: PFRAC(
jpgpt,
jplay)
57 REAL(KIND=JPRB) ,
INTENT(IN) :: P_SEMISS(
jpband)
58 REAL(KIND=JPRB) ,
INTENT(OUT) :: P_SEMISLW
59 INTEGER(KIND=JPIM) :: K_IREFLECT
63 INTEGER(KIND=JPIM) :: INDLAY(
jplay),INDLEV(0:
jplay)
66 REAL(KIND=JPRB) :: Z_TLAYFRAC(
jplay),Z_TLEVFRAC(0:
jplay)
67 REAL(KIND=JPRB) :: Z_BGLEV(
jpgpt)
72 REAL(KIND=JPRB) :: Z_SEMIS(
jpgpt),Z_RADUEMIT(
jpgpt)
74 REAL(KIND=JPRB) :: Z_RADCLRU1(
jpgpt) ,Z_RADCLRD1(
jpgpt)
75 REAL(KIND=JPRB) :: Z_RADLU1(
jpgpt) ,Z_RADLD1(
jpgpt)
88 REAL(KIND=JPRB) :: Z_FACCLR1(
jplay+1),Z_FACCLR2(
jplay+1)
89 REAL(KIND=JPRB) :: Z_FACCMB1(
jplay+1),Z_FACCMB2(
jplay+1)
90 REAL(KIND=JPRB) :: Z_FACCLD1D(0:
jplay),Z_FACCLD2D(0:
jplay),Z_FACCLR1D(0:
jplay)
91 REAL(KIND=JPRB) :: Z_FACCLR2D(0:
jplay),Z_FACCMB1D(0:
jplay),Z_FACCMB2D(0:
jplay)
92 REAL(KIND=JPRB) :: Z_CLRRADD(
jpgpt),Z_CLDRADD(
jpgpt)
93 INTEGER(KIND=JPIM) :: istcld(
jplay+1),istcldd(0:
jplay)
99 INTEGER(KIND=JPIM) :: IBAND, ICLDDN, IENT, INDBOUND, INDEX, IPR, I_LAY, I_LEV, I_NBI
101 REAL(KIND=JPRB) :: Z_BBD, Z_BBDTOT, Z_BGLAY, Z_CLDSRC, Z_DBDTLAY, Z_DBDTLEV,&
102 & Z_DELBGDN, Z_DELBGUP, Z_DRAD1, Z_DRADCL1, Z_FACTOT1, &
103 & Z_FMAX, Z_FMIN, Z_GASSRC, Z_ODSM, Z_PLANKBND, Z_RADCLD, Z_RADD, Z_RADMOD, Z_RAT1, Z_RAT2, Z_SUMPL, &
104 & Z_SUMPLEM, Z_TBNDFRAC, Z_TRNS, Z_TTOT, Z_URAD1, Z_URADCL1, ZEXTAU
105 REAL(KIND=JPRB) :: ZHOOK_HANDLE
109 REAL(KIND=JPRB) :: CLFNET(0:
jplay)
110 REAL(KIND=JPRB) :: CLHTR(0:
jplay)
111 REAL(KIND=JPRB) :: FNET(0:
jplay)
112 REAL(KIND=JPRB) :: HTR(0:
jplay)
194 z_cldfrac(1:klev)=p_cldfrac(1:klev)
195 z_cldfrac(klev+1)=0.0_jprb
196 IF (
lhook)
CALL dr_hook(
'RRTM_RTRN1A_140GP',0,zhook_handle)
204 IF (p_tbound < 339._jprb .AND. p_tbound >= 160._jprb )
THEN
205 indbound = p_tbound - 159._jprb
206 z_tbndfrac = p_tbound - int(p_tbound)
207 ELSEIF (p_tbound >= 339._jprb )
THEN
209 z_tbndfrac = p_tbound - 339._jprb
210 ELSEIF (p_tbound < 160._jprb )
THEN
212 z_tbndfrac = p_tbound - 160._jprb
217 p_totufluc(i_lay) = 0.0_jprb
218 p_totdfluc(i_lay) = 0.0_jprb
219 p_totuflux(i_lay) = 0.0_jprb
220 p_totdflux(i_lay) = 0.0_jprb
222 IF (p_tz(i_lay) < 339._jprb .AND. p_tz(i_lay) >= 160._jprb )
THEN
223 indlev(i_lay) = p_tz(i_lay) - 159._jprb
224 z_tlevfrac(i_lay) = p_tz(i_lay) - int(p_tz(i_lay))
225 ELSEIF (p_tz(i_lay) >= 339._jprb )
THEN
227 z_tlevfrac(i_lay) = p_tz(i_lay) - 339._jprb
228 ELSEIF (p_tz(i_lay) < 160._jprb )
THEN
230 z_tlevfrac(i_lay) = p_tz(i_lay) - 160._jprb
237 z_faccld1(i_lev+1) = 0.0_jprb
238 z_faccld2(i_lev+1) = 0.0_jprb
239 z_facclr1(i_lev+1) = 0.0_jprb
240 z_facclr2(i_lev+1) = 0.0_jprb
241 z_faccmb1(i_lev+1) = 0.0_jprb
242 z_faccmb2(i_lev+1) = 0.0_jprb
243 z_faccld1d(i_lev) = 0.0_jprb
244 z_faccld2d(i_lev) = 0.0_jprb
245 z_facclr1d(i_lev) = 0.0_jprb
246 z_facclr2d(i_lev) = 0.0_jprb
247 z_faccmb1d(i_lev) = 0.0_jprb
248 z_faccmb2d(i_lev) = 0.0_jprb
265 IF (p_tavel(i_lev) < 339._jprb .AND. p_tavel(i_lev) >= 160._jprb )
THEN
266 indlay(i_lev) = p_tavel(i_lev) - 159._jprb
267 z_tlayfrac(i_lev) = p_tavel(i_lev) - int(p_tavel(i_lev))
268 ELSEIF (p_tavel(i_lev) >= 339._jprb )
THEN
270 z_tlayfrac(i_lev) = p_tavel(i_lev) - 339._jprb
271 ELSEIF (p_tavel(i_lev) < 160._jprb )
THEN
273 z_tlayfrac(i_lev) = p_tavel(i_lev) - 160._jprb
283 IF (k_icldlyr(i_lev) == 1)
THEN
287 IF (i_lev == klev)
THEN
288 z_faccld1(i_lev+1) = 0.0_jprb
289 z_faccld2(i_lev+1) = 0.0_jprb
290 z_facclr1(i_lev+1) = 0.0_jprb
291 z_facclr2(i_lev+1) = 0.0_jprb
294 z_faccmb1(i_lev+1) =0.0_jprb
295 z_faccmb2(i_lev+1) =0.0_jprb
298 ELSEIF (z_cldfrac(i_lev+1) >= z_cldfrac(i_lev))
THEN
299 z_faccld1(i_lev+1) = 0.0_jprb
300 z_faccld2(i_lev+1) = 0.0_jprb
301 IF (istcld(i_lev) == 1)
THEN
303 z_facclr1(i_lev+1) = 0.0_jprb
305 z_facclr2(i_lev+1) = 0.0_jprb
306 IF (z_cldfrac(i_lev) < 1.0_jprb)
THEN
307 z_facclr2(i_lev+1) = (z_cldfrac(i_lev+1)-z_cldfrac(i_lev))/&
308 & (1.0_jprb-z_cldfrac(i_lev))
311 z_facclr2(i_lev) = 0.0_jprb
312 z_faccld2(i_lev) = 0.0_jprb
315 z_fmax = max(z_cldfrac(i_lev),z_cldfrac(i_lev-1))
317 IF (z_cldfrac(i_lev+1) > z_fmax)
THEN
318 z_facclr1(i_lev+1) = z_rat2
319 z_facclr2(i_lev+1) = (z_cldfrac(i_lev+1)-z_fmax)/(1.0_jprb-z_fmax)
321 ELSEIF (z_cldfrac(i_lev+1) < z_fmax)
THEN
322 z_facclr1(i_lev+1) = (z_cldfrac(i_lev+1)-z_cldfrac(i_lev))/&
323 & (z_cldfrac(i_lev-1)-z_cldfrac(i_lev))
324 z_facclr2(i_lev+1) = 0.0_jprb
327 z_facclr1(i_lev+1) = z_rat2
328 z_facclr2(i_lev+1) = 0.0_jprb
331 IF (z_facclr1(i_lev+1) > 0.0_jprb .OR. z_facclr2(i_lev+1) > 0.0_jprb)
THEN
342 z_facclr1(i_lev+1) = 0.0_jprb
343 z_facclr2(i_lev+1) = 0.0_jprb
344 IF (istcld(i_lev) == 1)
THEN
346 z_faccld1(i_lev+1) = 0.0_jprb
347 z_faccld2(i_lev+1) = (z_cldfrac(i_lev)-z_cldfrac(i_lev+1))/z_cldfrac(i_lev)
349 z_facclr2(i_lev) = 0.0_jprb
350 z_faccld2(i_lev) = 0.0_jprb
353 z_fmin = min(z_cldfrac(i_lev),z_cldfrac(i_lev-1))
354 IF (z_cldfrac(i_lev+1) <= z_fmin)
THEN
355 z_faccld1(i_lev+1) = z_rat1
356 z_faccld2(i_lev+1) = (z_fmin-z_cldfrac(i_lev+1))/z_fmin
358 z_faccld1(i_lev+1) = (z_cldfrac(i_lev)-z_cldfrac(i_lev+1))/&
359 & (z_cldfrac(i_lev)-z_fmin)
360 z_faccld2(i_lev+1) = 0.0_jprb
363 IF (z_faccld1(i_lev+1) > 0.0_jprb .OR. z_faccld2(i_lev+1) > 0.0_jprb)
THEN
385 if(istcld(i_lev).ne.1)
then
386 z_faccmb1(i_lev+1) = max(0.,min(z_cldfrac(i_lev+1)-z_cldfrac(i_lev), &
387 z_cldfrac(i_lev-1)-z_cldfrac(i_lev)))
388 z_faccmb2(i_lev+1) = max(0.,min(z_cldfrac(i_lev)-z_cldfrac(i_lev+1), &
389 z_cldfrac(i_lev)-z_cldfrac(i_lev-1)))
407 DO i_lev = klev, 1, -1
408 IF (k_icldlyr(i_lev) == 1)
THEN
412 z_faccld1d(i_lev-1) = 0.0_jprb
413 z_faccld2d(i_lev-1) = 0.0_jprb
414 z_facclr1d(i_lev-1) = 0.0_jprb
415 z_facclr2d(i_lev-1) = 0.0_jprb
416 z_faccmb1d(i_lev-1) = 0.0_jprb
417 z_faccmb2d(i_lev-1) = 0.0_jprb
419 ELSEIF (z_cldfrac(i_lev-1) >= z_cldfrac(i_lev))
THEN
420 z_faccld1d(i_lev-1) = 0.0_jprb
421 z_faccld2d(i_lev-1) = 0.0_jprb
422 IF (istcldd(i_lev) == 1)
THEN
424 z_facclr1d(i_lev-1) = 0.0_jprb
425 z_facclr2d(i_lev-1) = 0.0_jprb
426 IF (z_cldfrac(i_lev) < 1.0_jprb)
THEN
427 z_facclr2d(i_lev-1) = (z_cldfrac(i_lev-1)-z_cldfrac(i_lev))/&
428 & (1.0_jprb-z_cldfrac(i_lev))
431 z_facclr2d(i_lev)=0.0_jprb
432 z_faccld2d(i_lev)=0.0_jprb
435 z_fmax = max(z_cldfrac(i_lev),z_cldfrac(i_lev+1))
437 IF (z_cldfrac(i_lev-1) > z_fmax)
THEN
438 z_facclr1d(i_lev-1) = z_rat2
439 z_facclr2d(i_lev-1) = (z_cldfrac(i_lev-1)-z_fmax)/(1.0_jprb-z_fmax)
441 ELSEIF (z_cldfrac(i_lev-1) < z_fmax)
THEN
442 z_facclr1d(i_lev-1) = (z_cldfrac(i_lev-1)-z_cldfrac(i_lev))/&
443 & (z_cldfrac(i_lev+1)-z_cldfrac(i_lev))
444 z_facclr2d(i_lev-1) = 0.0_jprb
447 z_facclr1d(i_lev-1) = z_rat2
448 z_facclr2d(i_lev-1) = 0.0_jprb
451 IF (z_facclr1d(i_lev-1) > 0.0_jprb .OR. z_facclr2d(i_lev-1) > 0.0_jprb)
THEN
462 z_facclr1d(i_lev-1) = 0.0_jprb
463 z_facclr2d(i_lev-1) = 0.0_jprb
464 IF (istcldd(i_lev) == 1)
THEN
466 z_faccld1d(i_lev-1) = 0.0_jprb
467 z_faccld2d(i_lev-1) = (z_cldfrac(i_lev)-z_cldfrac(i_lev-1))/z_cldfrac(i_lev)
469 z_facclr2d(i_lev)=0.0_jprb
470 z_faccld2d(i_lev)=0.0_jprb
473 z_fmin = min(z_cldfrac(i_lev),z_cldfrac(i_lev+1))
474 IF (z_cldfrac(i_lev-1) <= z_fmin)
THEN
475 z_faccld1d(i_lev-1) = z_rat1
476 z_faccld2d(i_lev-1) = (z_fmin-z_cldfrac(i_lev-1))/z_fmin
478 z_faccld1d(i_lev-1) = (z_cldfrac(i_lev)-z_cldfrac(i_lev-1))/&
479 & (z_cldfrac(i_lev)-z_fmin)
480 z_faccld2d(i_lev-1) = 0.0_jprb
483 IF (z_faccld1d(i_lev-1) > 0.0_jprb .OR. z_faccld2d(i_lev-1) > 0.0_jprb)
THEN
498 if (istcldd(i_lev).ne.1.and.i_lev.ne.0)
then
499 z_faccmb1d(i_lev-1) = max(0.,min(z_cldfrac(i_lev+1)-z_cldfrac(i_lev), &
500 z_cldfrac(i_lev-1)-z_cldfrac(i_lev)))
501 z_faccmb2d(i_lev-1) = max(0.,min(z_cldfrac(i_lev)-z_cldfrac(i_lev+1), &
502 z_cldfrac(i_lev)-z_cldfrac(i_lev-1)))
512 DO iband = k_istart, k_iend
514 z_plankbnd =
delwave(iband) * (
totplnk(indbound,iband) + z_tbndfrac * z_dbdtlev)
517 z_plvl(iband,0) =
delwave(iband)&
518 & * (
totplnk(indlev(0),iband) + z_tlevfrac(0)*z_dbdtlev)
520 z_surfemis(iband) = p_semiss(iband)
521 z_plnkemit(iband) = z_surfemis(iband) * z_plankbnd
522 z_sumplem = z_sumplem + z_plnkemit(iband)
523 z_sumpl = z_sumpl + z_plankbnd
530 DO iband = k_istart, k_iend
536 z_dbdtlev =
totplnk(indlev(i_lev)+1,iband) -
totplnk(indlev(i_lev),iband)
537 z_dbdtlay =
totplnk(indlay(i_lev)+1,iband) -
totplnk(indlay(i_lev),iband)
539 z_play(iband,i_lev) =
delwave(iband)&
540 & *(
totplnk(indlay(i_lev),iband)+z_tlayfrac(i_lev)*z_dbdtlay)
541 z_plvl(iband,i_lev) =
delwave(iband)&
542 & *(
totplnk(indlev(i_lev),iband)+z_tlevfrac(i_lev)*z_dbdtlev)
543 IF (k_icldlyr(i_lev) > 0)
THEN
544 zextau = min( p_taucld(i_lev,iband), 200._jprb)
545 z_trncld(i_lev,iband) = exp( -zextau )
552 p_semislw = z_sumplem / z_sumpl
570 IF (k_icldlyr(i_lev) > 0)
THEN
574 z_odcldnw(ipr,i_lev) = p_taucld(i_lev,
ngb(ipr))
575 z_abscldnw(ipr,i_lev) = 1.0_jprb - z_trncld(i_lev,
ngb(ipr))
584 z_radclrd1(ipr) = 0.0_jprb
585 z_radld1(ipr) = 0.0_jprb
587 z_semis(ipr) = z_surfemis(i_nbi)
588 z_raduemit(ipr) = pfrac(ipr,1) * z_plnkemit(i_nbi)
590 z_bglev(ipr) = pfrac(ipr,klev) * z_plvl(i_nbi,klev)
598 DO i_lev = klev, 1, -1
602 IF (k_icldlyr(i_lev) == 1)
THEN
606 ient =
jpgpt * (i_lev-1)
611 z_bglay = pfrac(ipr,i_lev) * z_play(
ngb(ipr),i_lev)
613 z_delbgup = z_bglev(ipr) - z_bglay
614 z_bbu1(index) = z_bglay + p_tausf1(index) * z_delbgup
616 z_bglev(ipr) = pfrac(ipr,i_lev) * z_plvl(
ngb(ipr),i_lev-1)
618 z_delbgdn = z_bglev(ipr) - z_bglay
619 z_bbd = z_bglay + p_tausf1(index) * z_delbgdn
621 z_odsm = p_od(ipr,i_lev) + z_odcldnw(ipr,i_lev)
622 z_factot1 = z_odsm / (
bpade + z_odsm)
623 z_bbutot1(index) = z_bglay + z_factot1 * z_delbgup
624 z_atot1(index) = p_abss1(index) + z_abscldnw(ipr,i_lev)&
625 & - p_abss1(index) * z_abscldnw(ipr,i_lev)
626 z_bbdtot = z_bglay + z_factot1 * z_delbgdn
627 z_gassrc = z_bbd * p_abss1(index)
629 IF (istcldd(i_lev) == 1)
THEN
630 z_cldradd(ipr) = z_cldfrac(i_lev) * z_radld1(ipr)
631 z_clrradd(ipr) = z_radld1(ipr) - z_cldradd(ipr)
632 z_oldcld(ipr) = z_cldradd(ipr)
633 z_oldclr(ipr) = z_clrradd(ipr)
634 z_rad(ipr) = 0.0_jprb
636 z_ttot = 1.0_jprb - z_atot1(index)
637 z_cldsrc = z_bbdtot * z_atot1(index)
640 z_cldradd(ipr) = z_cldradd(ipr) * z_ttot + z_cldfrac(i_lev) * z_cldsrc
641 z_clrradd(ipr) = z_clrradd(ipr) * (1.0_jprb-p_abss1(index)) +&
642 & (1.0_jprb - z_cldfrac(i_lev)) * z_gassrc
645 z_radld1(ipr) = z_cldradd(ipr) + z_clrradd(ipr)
646 z_drad1 = z_drad1 + z_radld1(ipr)
649 z_radclrd1(ipr) = z_radclrd1(ipr)+(z_bbd-z_radclrd1(ipr))*p_abss1(index)
650 z_dradcl1 = z_dradcl1 + z_radclrd1(ipr)
655 z_radmod = z_rad(ipr) * (z_facclr1d(i_lev-1) * (1.0_jprb-p_abss1(index)) +&
656 & z_faccld1d(i_lev-1) * z_ttot) - &
657 & z_faccmb1d(i_lev-1) * z_gassrc + &
658 & z_faccmb2d(i_lev-1) * z_cldsrc
662 z_oldcld(ipr) = z_cldradd(ipr) - z_radmod
663 z_oldclr(ipr) = z_clrradd(ipr) + z_radmod
666 z_rad(ipr) = -z_radmod + z_facclr2d(i_lev-1)*z_oldclr(ipr) -&
667 & z_faccld2d(i_lev-1)*z_oldcld(ipr)
668 z_cldradd(ipr) = z_cldradd(ipr) + z_rad(ipr)
669 z_clrradd(ipr) = z_clrradd(ipr) - z_rad(ipr)
680 ient =
jpgpt * (i_lev-1)
681 IF (iclddn == 1)
THEN
686 z_bglay = pfrac(ipr,i_lev) * z_play(
ngb(ipr),i_lev)
688 z_delbgup = z_bglev(ipr) - z_bglay
689 z_bbu1(index) = z_bglay + p_tausf1(index) * z_delbgup
691 z_bglev(ipr) = pfrac(ipr,i_lev) * z_plvl(
ngb(ipr),i_lev-1)
693 z_delbgdn = z_bglev(ipr) - z_bglay
694 z_bbd = z_bglay + p_tausf1(index) * z_delbgdn
697 z_radld1(ipr) = z_radld1(ipr)+(z_bbd-z_radld1(ipr))*p_abss1(index)
698 z_drad1 = z_drad1 + z_radld1(ipr)
703 z_radclrd1(ipr) = z_radclrd1(ipr)+(z_bbd-z_radclrd1(ipr))*p_abss1(index)
704 z_dradcl1 = z_dradcl1 + z_radclrd1(ipr)
713 z_bglay = pfrac(ipr,i_lev) * z_play(
ngb(ipr),i_lev)
715 z_delbgup = z_bglev(ipr) - z_bglay
716 z_bbu1(index) = z_bglay + p_tausf1(index) * z_delbgup
718 z_bglev(ipr) = pfrac(ipr,i_lev) * z_plvl(
ngb(ipr),i_lev-1)
720 z_delbgdn = z_bglev(ipr) - z_bglay
721 z_bbd = z_bglay + p_tausf1(index) * z_delbgdn
723 z_radld1(ipr) = z_radld1(ipr)+(z_bbd-z_radld1(ipr))*p_abss1(index)
724 z_drad1 = z_drad1 + z_radld1(ipr)
728 z_radclrd1(ipr) = z_radld1(ipr)
735 p_totdfluc(i_lev-1) = z_dradcl1 * z_wtnum(1)
736 p_totdflux(i_lev-1) = z_drad1 * z_wtnum(1)
755 z_radcld = z_radclrd1(ipr)
756 z_radclru1(ipr) = z_raduemit(ipr) + (1.0_jprb - z_semis(ipr)) * z_radcld
757 z_uradcl1 = z_uradcl1 + z_radclru1(ipr)
761 z_radd = z_radld1(ipr)
762 z_radlu1(ipr) = z_raduemit(ipr) + (1.0_jprb - z_semis(ipr)) * z_radd
763 z_urad1 = z_urad1 + z_radlu1(ipr)
765 p_totufluc(0) = z_uradcl1 * 0.5_jprb
766 p_totuflux(0) = z_urad1 * 0.5_jprb
790 IF (k_icldlyr(i_lev) == 1)
THEN
793 ient =
jpgpt * (i_lev-1)
797 z_gassrc = z_bbu1(index) * p_abss1(index)
801 IF (istcld(i_lev) == 1)
THEN
802 z_cldradu(ipr) = z_cldfrac(i_lev) * z_radlu1(ipr)
803 z_clrradu(ipr) = z_radlu1(ipr) - z_cldradu(ipr)
804 z_oldcld(ipr) = z_cldradu(ipr)
805 z_oldclr(ipr) = z_clrradu(ipr)
806 z_rad(ipr) = 0.0_jprb
808 z_ttot = 1.0_jprb - z_atot1(index)
809 z_trns = 1.0_jprb - p_abss1(index)
810 z_cldsrc = z_bbutot1(index) * z_atot1(index)
813 z_cldradu(ipr) = z_cldradu(ipr) * z_ttot + z_cldfrac(i_lev) * z_cldsrc
814 z_clrradu(ipr) = z_clrradu(ipr) * z_trns +(1.0_jprb - z_cldfrac(i_lev)) * z_gassrc
818 z_radlu1(ipr) = z_cldradu(ipr) + z_clrradu(ipr)
819 z_urad1 = z_urad1 + z_radlu1(ipr)
822 z_radclru1(ipr) = z_radclru1(ipr) + (z_bbu1(index)-z_radclru1(ipr))&
824 z_uradcl1 = z_uradcl1 + z_radclru1(ipr)
829 z_radmod = z_rad(ipr) * (z_facclr1(i_lev+1) * z_trns +&
830 & z_faccld1(i_lev+1) * z_ttot) - &
831 & z_faccmb1(i_lev+1) * z_gassrc + &
832 & z_faccmb2(i_lev+1) * z_cldsrc
836 z_oldcld(ipr) = z_cldradu(ipr) - z_radmod
837 z_oldclr(ipr) = z_clrradu(ipr) + z_radmod
840 z_rad(ipr) = -z_radmod + z_facclr2(i_lev+1)*z_oldclr(ipr) -&
841 & z_faccld2(i_lev+1)*z_oldcld(ipr)
842 z_cldradu(ipr) = z_cldradu(ipr) + z_rad(ipr)
843 z_clrradu(ipr) = z_clrradu(ipr) - z_rad(ipr)
850 ient =
jpgpt * (i_lev-1)
854 z_radlu1(ipr) = z_radlu1(ipr)+(z_bbu1(index)-z_radlu1(ipr))*p_abss1(index)
855 z_urad1 = z_urad1 + z_radlu1(ipr)
859 z_radclru1(ipr) = z_radclru1(ipr)+(z_bbu1(index)-z_radclru1(ipr))*p_abss1(index)
860 z_uradcl1 = z_uradcl1 + z_radclru1(ipr)
865 p_totufluc(i_lev) = z_uradcl1 * z_wtnum(1)
866 p_totuflux(i_lev) = z_urad1 * z_wtnum(1)
898 IF (
lhook)
CALL dr_hook(
'RRTM_RTRN1A_140GP',1,zhook_handle)
integer(kind=jpim), dimension(jpgpt) ngb
integer(kind=jpim), parameter jpgpt
integer(kind=jpim), parameter jpband
real(kind=jprb), dimension(181, 16) totplnk
integer(kind=jpim), parameter jplay
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
real(kind=jprb), dimension(16) delwave
subroutine rrtm_rtrn1a_140gp(KLEV, K_ISTART, K_IEND, K_ICLDLYR, P_CLDFRAC, P_TAUCLD, P_ABSS1, P_OD, P_TAUSF1, P_CLFNET, P_CLHTR, P_FNET, P_HTR, P_TOTDFLUC, P_TOTDFLUX, P_TOTUFLUC, P_TOTUFLUX, P_TAVEL, PZ, P_TZ, P_TBOUND, PFRAC, P_SEMISS, P_SEMISLW, K_IREFLECT)