28 real(8),
intent(in ) :: te, pl, tempor
29 real(8),
intent(in ) :: af, cf, qclan, qcian, qclls, qcils
33 real(8),
intent(out) :: rad_ql,rad_qi,rad_cf,rad_rl,rad_ri
37 real(8) :: ss, rad_ri_an, afx, alph
39 real(8),
parameter :: min_ri = 20.e-6, max_ri = 40.e-6, ri_anv = 30.e-6
56 ss = alph + (ss**3) * ( 1.0 - alph )
61 rad_cf =
min( cf + afx, 1.00 )
64 if ( rad_cf > 10.0e-8 )
then 65 rad_ql = ( qclls + qclan ) / rad_cf
69 rad_ql =
min( rad_ql, 0.01 )
72 if ( rad_cf > 10.0e-8 )
then 73 rad_qi = ( qcils + qcian ) / rad_cf
77 rad_qi =
min( rad_qi, 0.01 )
94 rad_ri = max_ri*150./pl
100 if ( ( qcils + qcian ) > 0.0 )
then 101 if (qcils/rad_ri+qcian/ri_anv .gt. 10e-8)
then 102 rad_ri_an = ( qcils + qcian ) / ( (qcils/rad_ri) + (qcian/ri_anv) )
106 rad_ri =
min( rad_ri, rad_ri_an )
107 rad_ri =
max( rad_ri, min_ri )
113 if (pl >= 300. )
then 114 rad_rl = 21.e-6*300./pl
116 rad_rl =
max( rad_rl, 10.e-6 )
119 if ( pl .GE. 775. .AND. te .LE. 275. .AND. (tempor.eq.1.) )
then 120 rad_rl =
max(
min(-0.1 * pl + 87.5, 10.),5.)*1.e-6
122 if ( pl .GE. 825. .AND. te .LE. 282. .AND. (tempor.eq.1.) )
then 123 rad_rl =
max(0.71 * te - 190.25, 5.)*1.e-6
125 if ( pl .GE. 775. .AND. pl .LT. 825. .AND. te .LE. 282. .AND. te .GT. 275. .AND. (tempor.eq.1.) )
then 126 rad_rl =
min(-0.1*pl + 0.71 * te - 107.75, 10.)*1.e-6
128 if ( pl .GE. 825. .AND. te .LE. 275. .AND. (tempor.eq.1.) )
then 133 if ( pl .GE. 950. .AND. te .GE. 285. )
then 134 rad_rl =
min(2.2 * te - 617., 21.)*1.e-6
136 if ( pl .GE. 925. .AND. te .GE. 290. )
then 137 rad_rl =
min(0.44 * pl - 397., 21.)*1.e-6
139 if ( pl .GE. 925. .AND. pl .LT. 950. .AND. te .GT. 285. .AND. te .LT. 290.)
then 140 rad_rl =
max(
min(0.44*pl + 2.2 * te - 1035., 21.),10.)*1.e-6
142 if ( pl .GE. 950. .AND. te .GE. 290. )
then 146 if ( rad_cf < 1.e-5 )
then 156 SUBROUTINE radcouple_d(te, ted, pl, cf, cfd, af, afd, qclls, qcllsd, &
157 & qcils, qcilsd, qclan, qcland, qcian, qciand, rad_ql, rad_qld, rad_qi, &
158 & rad_qid, rad_cf, rad_cfd, rad_rl, rad_rld, rad_ri, rad_rid, tempor)
161 REAL*8,
INTENT(IN) :: te, pl, tempor
162 REAL*8,
INTENT(IN) :: ted
163 REAL*8,
INTENT(IN) :: af, cf, qclan, qcian, qclls, qcils
164 REAL*8,
INTENT(IN) :: afd, cfd, qcland, qciand, qcllsd, qcilsd
167 REAL*8,
INTENT(OUT) :: rad_ql, rad_qi, rad_cf, rad_rl, rad_ri
168 REAL*8,
INTENT(OUT) :: rad_qld, rad_qid, rad_cfd, rad_rld, rad_rid
171 REAL*8 :: ss, rad_ri_an, afx, alph
172 REAL*8 :: ssd, rad_ri_and, afxd
173 REAL*8,
PARAMETER :: min_ri=20.e-6, max_ri=40.e-6, ri_anv=30.e-6
201 IF (1.0 .GT. ss)
THEN 207 IF (0.0 .LT. ss)
THEN 213 ssd = (1.0-alph)*3*ss**2*ssd
214 ss = alph + ss**3*(1.0-alph)
215 afxd = 0.5*(afd*ss+af*ssd)
217 IF (cf + afx .GT. 1.00)
THEN 225 IF (rad_cf .GT. 10.0e-8)
THEN 227 rad_qld = ((qcllsd+qcland)*rad_cf-(qclls+qclan)*rad_cfd)/rad_cf**2
228 rad_ql = (qclls+qclan)/rad_cf
233 IF (rad_ql .GT. 0.01)
THEN 240 IF (rad_cf .GT. 10.0e-8)
THEN 242 rad_qid = ((qcilsd+qciand)*rad_cf-(qcils+qcian)*rad_cfd)/rad_cf**2
243 rad_qi = (qcils+qcian)/rad_cf
248 IF (rad_qi .GT. 0.01)
THEN 264 IF (pl .LT. 150.) rad_ri = max_ri
265 IF (pl .GE. 150.) rad_ri = max_ri*150./pl
268 IF (qcils + qcian .GT. 0.0)
THEN 269 IF (qcils/rad_ri + qcian/ri_anv .GT. 10e-8)
THEN 271 rad_ri_and = ((qcilsd+qciand)*(qcils/rad_ri+qcian/ri_anv)-(qcils+&
272 & qcian)*(qcilsd/rad_ri+qciand/ri_anv))/(qcils/rad_ri+qcian/ri_anv&
274 rad_ri_an = (qcils+qcian)/(qcils/rad_ri+qcian/ri_anv)
281 IF (rad_ri .GT. rad_ri_an)
THEN 288 IF (rad_ri .LT. min_ri)
THEN 295 IF (pl .LT. 300.) rad_rl = 21.e-6
296 IF (pl .GE. 300.) rad_rl = 21.e-6*300./pl
297 IF (rad_rl .LT. 10.e-6)
THEN 303 IF (pl .GE. 775. .AND. te .LE. 275. .AND. tempor .EQ. 1.)
THEN 304 IF (-(0.1*pl) + 87.5 .GT. 10.)
THEN 307 x1 = -(0.1*pl) + 87.5
316 IF (pl .GE. 825. .AND. te .LE. 282. .AND. tempor .EQ. 1.)
THEN 317 IF (0.71*te - 190.25 .LT. 5.)
THEN 322 max2 = 0.71*te - 190.25
324 rad_rld = 1.e-6*max2d
329 IF (pl .GE. 775. .AND. pl .LT. 825. .AND. te .LE. 282. .AND. te .GT. &
330 & 275. .AND. tempor .EQ. 1.)
THEN 331 IF (-(0.1*pl) + 0.71*te - 107.75 .GT. 10.)
THEN 336 min1 = -(0.1*pl) + 0.71*te - 107.75
338 rad_rld = 1.e-6*min1d
341 IF (pl .GE. 825. .AND. te .LE. 275. .AND. tempor .EQ. 1.)
THEN 346 IF (pl .GE. 950. .AND. te .GE. 285.)
THEN 347 IF (2.2*te - 617. .GT. 21.)
THEN 354 rad_rld = 1.e-6*min2d
357 IF (pl .GE. 925. .AND. te .GE. 290.)
THEN 358 IF (0.44*pl - 397. .GT. 21.)
THEN 361 min3 = 0.44*pl - 397.
366 IF (pl .GE. 925. .AND. pl .LT. 950. .AND. te .GT. 285. .AND. te .LT. &
368 IF (0.44*pl + 2.2*te - 1035. .GT. 21.)
THEN 373 x2 = 0.44*pl + 2.2*te - 1035.
375 IF (x2 .LT. 10.)
THEN 382 rad_rld = 1.e-6*max3d
385 IF (pl .GE. 950. .AND. te .GE. 290.)
THEN 389 IF (rad_cf .LT. 1.e-5)
THEN 401 SUBROUTINE radcouple_b(te, teb, pl, cf, cfb, af, afb, qclls, qcllsb, &
402 & qcils, qcilsb, qclan, qclanb, qcian, qcianb, rad_ql, rad_qlb, rad_qi, &
403 & rad_qib, rad_cf, rad_cfb, rad_rl, rad_rlb, rad_ri, rad_rib, tempor)
406 REAL*8,
INTENT(IN) :: te, pl, tempor
408 REAL*8,
INTENT(IN) :: af, cf, qclan, qcian, qclls, qcils
409 REAL*8 :: afb, cfb, qclanb, qcianb, qcllsb, qcilsb
412 REAL*8 :: rad_ql, rad_qi, rad_cf, rad_rl, rad_ri
413 REAL*8 :: rad_qlb, rad_qib, rad_cfb, rad_rlb, rad_rib
416 REAL*8 :: ss, rad_ri_an, afx, alph
417 REAL*8 :: ssb, rad_ri_anb, afxb
418 REAL*8,
PARAMETER :: min_ri=20.e-6, max_ri=40.e-6, ri_anv=30.e-6
447 IF (1.0 .GT. ss)
THEN 454 IF (0.0 .LT. ss)
THEN 462 ss = alph + ss**3*(1.0-alph)
464 IF (cf + afx .GT. 1.00)
THEN 472 IF (rad_cf .GT. 10.0e-8)
THEN 474 rad_ql = (qclls+qclan)/rad_cf
480 IF (rad_ql .GT. 0.01)
THEN 486 IF (rad_cf .GT. 10.0e-8)
THEN 488 rad_qi = (qcils+qcian)/rad_cf
494 IF (rad_qi .GT. 0.01)
THEN 509 IF (pl .LT. 150.) rad_ri = max_ri
510 IF (pl .GE. 150.) rad_ri = max_ri*150./pl
513 IF (qcils + qcian .GT. 0.0)
THEN 514 IF (qcils/rad_ri + qcian/ri_anv .GT. 10e-8)
THEN 516 rad_ri_an = (qcils+qcian)/(qcils/rad_ri+qcian/ri_anv)
524 IF (rad_ri .GT. rad_ri_an)
THEN 533 IF (rad_ri .LT. min_ri)
THEN 538 IF (pl .GE. 825. .AND. te .LE. 282. .AND. tempor .EQ. 1.)
THEN 539 IF (0.71*te - 190.25 .LT. 5.)
THEN 548 IF (pl .GE. 775. .AND. pl .LT. 825. .AND. te .LE. 282. .AND. te .GT. &
549 & 275. .AND. tempor .EQ. 1.)
THEN 550 IF (-(0.1*pl) + 0.71*te - 107.75 .GT. 10.)
THEN 559 IF (pl .GE. 825. .AND. te .LE. 275. .AND. tempor .EQ. 1.)
THEN 565 IF (pl .GE. 950. .AND. te .GE. 285.)
THEN 566 IF (2.2*te - 617. .GT. 21.)
THEN 575 IF (pl .GE. 925. .AND. te .GE. 290.)
THEN 580 IF (pl .GE. 925. .AND. pl .LT. 950. .AND. te .GT. 285. .AND. te .LT. &
582 IF (0.44*pl + 2.2*te - 1035. .GT. 21.)
THEN 586 x2 = 0.44*pl + 2.2*te - 1035.
589 IF (x2 .LT. 10.)
THEN 598 IF (pl .GE. 950. .AND. te .GE. 290.)
THEN 603 IF (rad_cf .LT. 1.e-5)
THEN 609 IF (branch .EQ. 0) rad_rlb = 0.0_8
611 IF (branch .EQ. 0)
THEN 612 max3b = 1.e-6*rad_rlb
614 IF (branch .EQ. 0)
THEN 620 IF (branch .NE. 0) teb = teb + 2.2*x2b
624 IF (branch .EQ. 0) rad_rlb = 0.0_8
626 IF (branch .EQ. 0)
THEN 627 min2b = 1.e-6*rad_rlb
629 IF (branch .NE. 0) teb = teb + 2.2*min2b
633 IF (branch .EQ. 0) rad_rlb = 0.0_8
635 IF (branch .EQ. 0)
THEN 636 min1b = 1.e-6*rad_rlb
638 IF (branch .NE. 0) teb = teb + 0.71*min1b
642 IF (branch .EQ. 0)
THEN 643 max2b = 1.e-6*rad_rlb
645 IF (branch .NE. 0) teb = teb + 0.71*max2b
648 IF (branch .EQ. 0) rad_rib = 0.0_8
650 IF (branch .EQ. 0)
THEN 658 IF (branch .NE. 0)
THEN 659 IF (branch .NE. 1)
THEN 660 temp = qcils/rad_ri + qcian/ri_anv
661 tempb1 = rad_ri_anb/temp
662 tempb2 = -((qcils+qcian)*tempb1/temp)
663 qcilsb = qcilsb + tempb2/rad_ri + tempb1
664 qcianb = qcianb + tempb2/ri_anv + tempb1
668 IF (branch .EQ. 0) rad_qib = 0.0_8
670 IF (branch .NE. 0)
THEN 671 tempb0 = rad_qib/rad_cf
672 qcilsb = qcilsb + tempb0
673 qcianb = qcianb + tempb0
674 rad_cfb = rad_cfb - (qcils+qcian)*tempb0/rad_cf
677 IF (branch .EQ. 0) rad_qlb = 0.0_8
679 IF (branch .NE. 0)
THEN 680 tempb = rad_qlb/rad_cf
681 qcllsb = qcllsb + tempb
682 qclanb = qclanb + tempb
683 rad_cfb = rad_cfb - (qclls+qclan)*tempb/rad_cf
686 IF (branch .EQ. 0)
THEN 692 afb = afb + 0.5*ss*afxb
695 ssb = (1.0-alph)*3*ss**2*ssb
697 IF (branch .NE. 0) ssb = 0.0_8
699 IF (branch .NE. 0) ssb = 0.0_8
subroutine popcontrol2b(cc)
subroutine, public radcouple(TE, PL, CF, AF, QClLS, QCiLS, QClAN, QCiAN, RAD_QL, RAD_QI, RAD_CF, RAD_RL, RAD_RI, TEMPOR)
subroutine, public radcouple_d(te, ted, pl, cf, cfd, af, afd, qclls, qcllsd, qcils, qcilsd, qclan, qcland, qcian, qciand, rad_ql, rad_qld, rad_qi, rad_qid, rad_cf, rad_cfd, rad_rl, rad_rld, rad_ri, rad_rid, tempor)
subroutine pushcontrol1b(cc)
subroutine pushcontrol2b(cc)
subroutine, public radcouple_b(te, teb, pl, cf, cfb, af, afb, qclls, qcllsb, qcils, qcilsb, qclan, qclanb, qcian, qcianb, rad_ql, rad_qlb, rad_qi, rad_qib, rad_cf, rad_cfb, rad_rl, rad_rlb, rad_ri, rad_rib, tempor)
subroutine popcontrol1b(cc)