5 s ptave, pwv, pqs, pozon, paer,
6 s pcldsw, ptau, pomega, pcg,
8 s palbpla,ptopsw,psolsw,ptopsw0,psolsw0,
9 s zfsup,zfsdn,zfsup0,zfsdn0,
12 s ptopswad,psolswad,ptopswai,psolswai,
61 REAL(KIND=8) ppsol(
kdlon)
62 REAL(KIND=8) pdp(
kdlon,kflev)
63 REAL(KIND=8) ppmb(
kdlon,kflev+1)
65 REAL(KIND=8) prmu0(
kdlon)
66 REAL(KIND=8) pfrac(
kdlon)
68 REAL(KIND=8) ptave(
kdlon,kflev)
69 REAL(KIND=8) pwv(
kdlon,kflev)
70 REAL(KIND=8) pqs(
kdlon,kflev)
71 REAL(KIND=8) pozon(
kdlon,kflev)
72 REAL(KIND=8) paer(
kdlon,kflev,5)
74 REAL(KIND=8) palbd(
kdlon,2)
75 REAL(KIND=8) palbp(
kdlon,2)
77 REAL(KIND=8) pcldsw(
kdlon,kflev)
78 REAL(KIND=8) ptau(
kdlon,2,kflev)
79 REAL(KIND=8) pcg(
kdlon,2,kflev)
80 REAL(KIND=8) pomega(
kdlon,2,kflev)
82 REAL(KIND=8) pheat(
kdlon,kflev)
83 REAL(KIND=8) pheat0(
kdlon,kflev)
84 REAL(KIND=8) palbpla(
kdlon)
85 REAL(KIND=8) ptopsw(
kdlon)
86 REAL(KIND=8) psolsw(
kdlon)
87 REAL(KIND=8) ptopsw0(
kdlon)
88 REAL(KIND=8) psolsw0(
kdlon)
92 real,
parameter:: dobson_u = 2.1415e-05
94 REAL(KIND=8) zoz(
kdlon,kflev)
97 REAL(KIND=8) zaki(
kdlon,2)
98 REAL(KIND=8) zcld(
kdlon,kflev)
99 REAL(KIND=8) zclear(
kdlon)
100 REAL(KIND=8) zdsig(
kdlon,kflev)
101 REAL(KIND=8) zfact(
kdlon)
102 REAL(KIND=8) zfd(
kdlon,kflev+1)
103 REAL(KIND=8) zfdown(
kdlon,kflev+1)
104 REAL(KIND=8) zfu(
kdlon,kflev+1)
105 REAL(KIND=8) zfup(
kdlon,kflev+1)
106 REAL(KIND=8) zrmu(
kdlon)
107 REAL(KIND=8) zsec(
kdlon)
108 REAL(KIND=8) zud(
kdlon,5,kflev+1)
109 REAL(KIND=8) zcldsw0(
kdlon,kflev)
111 REAL(KIND=8) zfsup(
kdlon,kflev+1)
112 REAL(KIND=8) zfsdn(
kdlon,kflev+1)
113 REAL(KIND=8) zfsup0(
kdlon,kflev+1)
114 REAL(KIND=8) zfsdn0(
kdlon,kflev+1)
116 INTEGER inu, jl, jk,
i,
k, kpl1
124 DATA appel1er /.true./
129 real(kind=8) flag_aer
130 logical ok_ade, ok_aie
131 real(kind=8) tauae(
kdlon,kflev,2)
132 real(kind=8) pizae(
kdlon,kflev,2)
133 real(kind=8) cgae(
kdlon,kflev,2)
134 REAL(KIND=8) ptaua(
kdlon,2,kflev)
135 REAL(KIND=8) pomegaa(
kdlon,2,kflev)
136 REAL(KIND=8) ptopswad(
kdlon)
137 REAL(KIND=8) psolswad(
kdlon)
138 REAL(KIND=8) ptopswai(
kdlon)
139 REAL(KIND=8) psolswai(
kdlon)
141 REAL(KIND=8),
allocatable,
save :: zfsupad(:,:)
143 REAL(KIND=8),
allocatable,
save :: zfsdnad(:,:)
145 REAL(KIND=8),
allocatable,
save :: zfsupai(:,:)
147 REAL(KIND=8),
allocatable,
save :: zfsdnai(:,:)
154 data initialized/.false./
159 if(.not.initialized)
then
162 allocate(zfsupad(
kdlon,kflev+1))
163 allocate(zfsdnad(
kdlon,kflev+1))
164 allocate(zfsupai(
kdlon,kflev+1))
165 allocate(zfsdnai(
kdlon,kflev+1))
174 WRITE(
lunout,*)
'SW calling frequency : ', swpas
175 WRITE(
lunout,*)
" In general, it should be 1"
179 IF (mod(itapsw,swpas).EQ.0)
THEN
181 tmp_ = 1./( dobson_u * 1e3 * rg)
186 zoz(jl,jk) = pozon(jl,jk)*tmp_*pdp(jl,jk)
194 s prmu0,pfrac,ptave,pwv,
195 s zaki,zcld,zclear,zdsig,zfact,zrmu,zsec,zud)
198 s paer, flag_aer, tauae, pizae, cgae,
199 s palbd, palbp, pcg, zcld, zclear, zcldsw0,
200 s zdsig, pomega, zoz, zrmu, zsec, ptau, zud,
204 s paer, flag_aer, tauae, pizae, cgae,
205 s zaki, palbd, palbp, pcg, zcld, zclear, zcldsw0,
206 s zdsig, pomega, zoz, zrmu, zsec, ptau, zud,
211 zfsup0(jl,jk) = (zfup(jl,jk) + zfu(jl,jk)) * zfact(jl)
212 zfsdn0(jl,jk) = (zfdown(jl,jk) + zfd(jl,jk)) * zfact(jl)
218 s prmu0,pfrac,ptave,pwv,
219 s zaki,zcld,zclear,zdsig,zfact,zrmu,zsec,zud)
222 s paer, flag_aer, tauae, pizae, cgae,
223 s palbd, palbp, pcg, zcld, zclear, pcldsw,
224 s zdsig, pomega, zoz, zrmu, zsec, ptau, zud,
228 s paer, flag_aer, tauae, pizae, cgae,
229 s zaki, palbd, palbp, pcg, zcld, zclear, pcldsw,
230 s zdsig, pomega, zoz, zrmu, zsec, ptau, zud,
238 zfsup(jl,jk) = (zfup(jl,jk) + zfu(jl,jk)) * zfact(jl)
239 zfsdn(jl,jk) = (zfdown(jl,jk) + zfd(jl,jk)) * zfact(jl)
249 s prmu0,pfrac,ptave,pwv,
250 s zaki,zcld,zclear,zdsig,zfact,zrmu,zsec,zud)
253 s paer, flag_aer, tauae, pizae, cgae,
254 s palbd, palbp, pcg, zcld, zclear, pcldsw,
255 s zdsig, pomega, zoz, zrmu, zsec, ptau, zud,
259 s paer, flag_aer, tauae, pizae, cgae,
260 s zaki, palbd, palbp, pcg, zcld, zclear, pcldsw,
261 s zdsig, pomega, zoz, zrmu, zsec, ptau, zud,
266 zfsupad(jl,jk) = zfsup(jl,jk)
267 zfsdnad(jl,jk) = zfsdn(jl,jk)
268 zfsup(jl,jk) = (zfup(jl,jk) + zfu(jl,jk)) * zfact(jl)
269 zfsdn(jl,jk) = (zfdown(jl,jk) + zfd(jl,jk)) * zfact(jl)
280 s prmu0,pfrac,ptave,pwv,
281 s zaki,zcld,zclear,zdsig,zfact,zrmu,zsec,zud)
284 s paer, flag_aer, tauae, pizae, cgae,
285 s palbd, palbp, pcg, zcld, zclear, pcldsw,
286 s zdsig, pomegaa, zoz, zrmu, zsec, ptaua, zud,
290 s paer, flag_aer, tauae, pizae, cgae,
291 s zaki, palbd, palbp, pcg, zcld, zclear, pcldsw,
292 s zdsig, pomegaa, zoz, zrmu, zsec, ptaua, zud,
297 zfsupai(jl,jk) = zfsup(jl,jk)
298 zfsdnai(jl,jk) = zfsdn(jl,jk)
299 zfsup(jl,jk) = (zfup(jl,jk) + zfu(jl,jk)) * zfact(jl)
300 zfsdn(jl,jk) = (zfdown(jl,jk) + zfd(jl,jk)) * zfact(jl)
313 pheat(
i,
k) = -(zfsup(
i,kpl1)-zfsup(
i,
k))
314 . -(zfsdn(
i,
k)-zfsdn(
i,kpl1))
315 pheat(
i,
k) = pheat(
i,
k) * rday*rg/rcpd / pdp(
i,
k)
316 pheat0(
i,
k) = -(zfsup0(
i,kpl1)-zfsup0(
i,
k))
317 . -(zfsdn0(
i,
k)-zfsdn0(
i,kpl1))
318 pheat0(
i,
k) = pheat0(
i,
k) * rday*rg/rcpd / pdp(
i,
k)
322 palbpla(
i) = zfsup(
i,kflev+1)/(zfsdn(
i,kflev+1)+1.0e-20)
324 psolsw(
i) = zfsdn(
i,1) - zfsup(
i,1)
325 ptopsw(
i) = zfsdn(
i,kflev+1) - zfsup(
i,kflev+1)
327 psolsw0(
i) = zfsdn0(
i,1) - zfsup0(
i,1)
328 ptopsw0(
i) = zfsdn0(
i,kflev+1) - zfsup0(
i,kflev+1)
330 psolswad(
i) = zfsdnad(
i,1) - zfsupad(
i,1)
331 ptopswad(
i) = zfsdnad(
i,kflev+1) - zfsupad(
i,kflev+1)
333 psolswai(
i) = zfsdnai(
i,1) - zfsupai(
i,1)
334 ptopswai(
i) = zfsdnai(
i,kflev+1) - zfsupai(
i,kflev+1)
343 s ptave,pwv,paki,pcld,pclear,pdsig,pfact,
347 s zpdh2o,zpdumg,zprh2o,zprumg,rtdh2o,rtdumg,rth2o,rtumg
360 #include "clesphys.h"
361 REAL(KIND=8) pcldsw(
kdlon,kflev)
362 REAL(KIND=8) ppmb(
kdlon,kflev+1)
363 REAL(KIND=8) ppsol(
kdlon)
364 REAL(KIND=8) prmu0(
kdlon)
365 REAL(KIND=8) pfrac(
kdlon)
366 REAL(KIND=8) ptave(
kdlon,kflev)
367 REAL(KIND=8) pwv(
kdlon,kflev)
369 REAL(KIND=8) paki(
kdlon,2)
370 REAL(KIND=8) pcld(
kdlon,kflev)
371 REAL(KIND=8) pclear(
kdlon)
372 REAL(KIND=8) pdsig(
kdlon,kflev)
373 REAL(KIND=8) pfact(
kdlon)
374 REAL(KIND=8) prmu(
kdlon)
375 REAL(KIND=8) psec(
kdlon)
376 REAL(KIND=8) pud(
kdlon,5,kflev+1)
381 REAL(KIND=8) zc1j(
kdlon,kflev+1)
382 REAL(KIND=8) zclear(
kdlon)
383 REAL(KIND=8) zcloud(
kdlon)
384 REAL(KIND=8) zn175(
kdlon)
385 REAL(KIND=8) zn190(
kdlon)
386 REAL(KIND=8) zo175(
kdlon)
387 REAL(KIND=8) zo190(
kdlon)
388 REAL(KIND=8) zsign(
kdlon)
389 REAL(KIND=8) zr(
kdlon,2)
390 REAL(KIND=8) zsigo(
kdlon)
391 REAL(KIND=8) zud(
kdlon,2)
392 REAL(KIND=8) zrth, zrtu, zwh2o, zdsco2, zdsh2o, zfppw
393 INTEGER jl, jk, jkp1, jkl, jklp1, ja
417 pfact(jl)= prmu0(jl) * pfrac(jl) * psct
418 prmu(jl)=sqrt(1224.* prmu0(jl) * prmu0(jl) + 1.) / 35.
431 zo175(jl) = ppsol(jl)** (zpdumg+1.)
432 zo190(jl) = ppsol(jl)** (zpdh2o+1.)
433 zsigo(jl) = ppsol(jl)
438 DO 133 jk = 1 , kflev
443 zrth=(rth2o/ptave(jl,jk))**rtdh2o
444 zrtu=(rtumg/ptave(jl,jk))**rtdumg
445 zwh2o = max(pwv(jl,jk) , zepscq )
446 zsign(jl) = 100. * ppmb(jl,jkp1)
447 pdsig(jl,jk) = (zsigo(jl) - zsign(jl))/ppsol(jl)
448 zn175(jl) = zsign(jl) ** (zpdumg+1.)
449 zn190(jl) = zsign(jl) ** (zpdh2o+1.)
450 zdsco2 = zo175(jl) - zn175(jl)
451 zdsh2o = zo190(jl) - zn190(jl)
452 pud(jl,1,jk) = 1./( 10.* rg * (zpdh2o+1.) )/(zprh2o**zpdh2o)
453 . * zdsh2o * zwh2o * zrth
454 pud(jl,2,jk) = 1./( 10.* rg * (zpdumg+1.) )/(zprumg**zpdumg)
455 . * zdsco2 * rco2 * zrtu
456 zfppw=1.6078*zwh2o/(1.+0.608*zwh2o)
457 pud(jl,4,jk)=pud(jl,1,jk)*zfppw
458 pud(jl,5,jk)=pud(jl,1,jk)*(1.-zfppw)
459 zud(jl,1) = zud(jl,1) + pud(jl,1,jk)
460 zud(jl,2) = zud(jl,2) + pud(jl,2,jk)
461 zsigo(jl) = zsign(jl)
462 zo175(jl) = zn175(jl)
463 zo190(jl) = zn190(jl)
466 zclear(jl)=zclear(jl)
467 s *(1.-max(pcldsw(jl,jkl),zcloud(jl)))
468 s /(1.-min(zcloud(jl),1.-zepsec))
469 zc1j(jl,jkl)= 1.0 - zclear(jl)
470 zcloud(jl) = pcldsw(jl,jkl)
471 ELSE IF (novlp.EQ.2)
THEN
472 zcloud(jl) = max(pcldsw(jl,jkl),zcloud(jl))
473 zc1j(jl,jkl) = zcloud(jl)
474 ELSE IF (novlp.EQ.3)
THEN
475 zclear(jl) = zclear(jl)*(1.-pcldsw(jl,jkl))
476 zcloud(jl) = 1.0 - zclear(jl)
477 zc1j(jl,jkl) = zcloud(jl)
482 pclear(jl)=1.-zc1j(jl,1)
486 IF (pclear(jl).LT.1.)
THEN
487 pcld(jl,jk)=pcldsw(jl,jk)/(1.-pclear(jl))
502 zud(jl,ja) = zud(jl,ja) * psec(jl)
510 paki(jl,ja) = -log( zr(jl,ja) ) / zud(jl,ja)
520 s , paer , flag_aer, tauae, pizae, cgae
521 s , palbd , palbp, pcg , pcld , pclear, pcldsw
522 s , pdsig , pomega, poz , prmu , psec , ptau , pud
528 USE chem_rep
, ONLY : RSUNTIME, ok_SUNTIME
535 #include "iniprint.h"
571 real(kind=8) flag_aer
572 real(kind=8) tauae(
kdlon,kflev,2)
573 real(kind=8) pizae(
kdlon,kflev,2)
574 real(kind=8) cgae(
kdlon,kflev,2)
575 REAL(KIND=8) paer(
kdlon,kflev,5)
576 REAL(KIND=8) palbd(
kdlon,2)
577 REAL(KIND=8) palbp(
kdlon,2)
578 REAL(KIND=8) pcg(
kdlon,2,kflev)
579 REAL(KIND=8) pcld(
kdlon,kflev)
580 REAL(KIND=8) pcldsw(
kdlon,kflev)
581 REAL(KIND=8) pclear(
kdlon)
582 REAL(KIND=8) pdsig(
kdlon,kflev)
583 REAL(KIND=8) pomega(
kdlon,2,kflev)
584 REAL(KIND=8) poz(
kdlon,kflev)
585 REAL(KIND=8) prmu(
kdlon)
586 REAL(KIND=8) psec(
kdlon)
587 REAL(KIND=8) ptau(
kdlon,2,kflev)
588 REAL(KIND=8) pud(
kdlon,5,kflev+1)
590 REAL(KIND=8) pfd(
kdlon,kflev+1)
591 REAL(KIND=8) pfu(
kdlon,kflev+1)
597 REAL(KIND=8) zcgaz(
kdlon,kflev)
598 REAL(KIND=8) zdiff(
kdlon)
599 REAL(KIND=8) zdirf(
kdlon)
600 REAL(KIND=8) zpizaz(
kdlon,kflev)
601 REAL(KIND=8) zrayl(
kdlon)
602 REAL(KIND=8) zray1(
kdlon,kflev+1)
603 REAL(KIND=8) zray2(
kdlon,kflev+1)
604 REAL(KIND=8) zrefz(
kdlon,2,kflev+1)
605 REAL(KIND=8) zrj(
kdlon,6,kflev+1)
606 REAL(KIND=8) zrj0(
kdlon,6,kflev+1)
607 REAL(KIND=8) zrk(
kdlon,6,kflev+1)
608 REAL(KIND=8) zrk0(
kdlon,6,kflev+1)
609 REAL(KIND=8) zrmue(
kdlon,kflev+1)
610 REAL(KIND=8) zrmu0(
kdlon,kflev+1)
611 REAL(KIND=8) zr(
kdlon,4)
612 REAL(KIND=8) ztauaz(
kdlon,kflev)
613 REAL(KIND=8) ztra1(
kdlon,kflev+1)
614 REAL(KIND=8) ztra2(
kdlon,kflev+1)
615 REAL(KIND=8) zw(
kdlon,4)
617 INTEGER jl, jk,
k, jaj, ikm1, ikl
621 IF (type_trac ==
'repr')
THEN
624 rsun(1) = rsuntime(1)
625 rsun(2) = rsuntime(2)
627 WRITE(
lunout,*)
'RSUN(1): ',rsun(1)
645 zrayl(jl) = rray(knu,1) + prmu(jl) * (rray(knu,2) + prmu(jl)
646 s * (rray(knu,3) + prmu(jl) * (rray(knu,4) + prmu(jl)
647 s * (rray(knu,5) + prmu(jl) * rray(knu,6) ))))
664 s , paer , flag_aer, tauae, pizae, cgae
665 s , palbp , pdsig , zrayl, psec
666 s , zcgaz , zpizaz, zray1 , zray2, zrefz, zrj0
667 s , zrk0 , zrmu0 , ztauaz, ztra1, ztra2)
676 s , palbd ,pcg ,pcld ,pdsig ,pomega,zrayl
678 s , zcgaz ,zpizaz,zray1 ,zray2 ,zrefz ,zrj ,zrk,zrmue
679 s , ztauaz,ztra1 ,ztra2)
707 pfd(jl,kflev+1)=((1.-pclear(jl))*zrj(jl,jaj,kflev+1)
708 s + pclear(jl) *zrj0(jl,jaj,kflev+1)) * rsun(knu)
710 DO 314 jk = 1 , kflev
713 zw(jl,1)=zw(jl,1)+pud(jl,1,ikl)/zrmue(jl,ikl)
714 zw(jl,2)=zw(jl,2)+poz(jl, ikl)/zrmue(jl,ikl)
715 zw(jl,3)=zw(jl,3)+pud(jl,1,ikl)/zrmu0(jl,ikl)
716 zw(jl,4)=zw(jl,4)+poz(jl, ikl)/zrmu0(jl,ikl)
722 zdiff(jl) = zr(jl,1)*zr(jl,2)*zrj(jl,jaj,ikl)
723 zdirf(jl) = zr(jl,3)*zr(jl,4)*zrj0(jl,jaj,ikl)
724 pfd(jl,ikl) = ((1.-pclear(jl)) * zdiff(jl)
725 s +pclear(jl) * zdirf(jl)) * rsun(knu)
736 pfu(jl,1) = ((1.-pclear(jl))*zdiff(jl)*palbd(jl,knu)
737 s + pclear(jl) *zdirf(jl)*palbp(jl,knu))
741 DO 328 jk = 2 , kflev+1
744 zw(jl,1)=zw(jl,1)+pud(jl,1,ikm1)*1.66
745 zw(jl,2)=zw(jl,2)+poz(jl, ikm1)*1.66
746 zw(jl,3)=zw(jl,3)+pud(jl,1,ikm1)*1.66
747 zw(jl,4)=zw(jl,4)+poz(jl, ikm1)*1.66
753 zdiff(jl) = zr(jl,1)*zr(jl,2)*zrk(jl,jaj,jk)
754 zdirf(jl) = zr(jl,3)*zr(jl,4)*zrk0(jl,jaj,jk)
755 pfu(jl,jk) = ((1.-pclear(jl)) * zdiff(jl)
756 s +pclear(jl) * zdirf(jl)) * rsun(knu)
765 s , paer , flag_aer, tauae, pizae, cgae
766 s , paki, palbd, palbp, pcg , pcld, pclear, pcldsw
767 s , pdsig ,pomega,poz , prmu , psec , ptau
774 use chem_rep
, only : RSUNTIME, ok_SUNTIME
821 real(kind=8) flag_aer
822 real(kind=8) tauae(
kdlon,kflev,2)
823 real(kind=8) pizae(
kdlon,kflev,2)
824 real(kind=8) cgae(
kdlon,kflev,2)
825 REAL(KIND=8) paer(
kdlon,kflev,5)
826 REAL(KIND=8) paki(
kdlon,2)
827 REAL(KIND=8) palbd(
kdlon,2)
828 REAL(KIND=8) palbp(
kdlon,2)
829 REAL(KIND=8) pcg(
kdlon,2,kflev)
830 REAL(KIND=8) pcld(
kdlon,kflev)
831 REAL(KIND=8) pcldsw(
kdlon,kflev)
832 REAL(KIND=8) pclear(
kdlon)
833 REAL(KIND=8) pdsig(
kdlon,kflev)
834 REAL(KIND=8) pomega(
kdlon,2,kflev)
835 REAL(KIND=8) poz(
kdlon,kflev)
836 REAL(KIND=8) pqs(
kdlon,kflev)
837 REAL(KIND=8) prmu(
kdlon)
838 REAL(KIND=8) psec(
kdlon)
839 REAL(KIND=8) ptau(
kdlon,2,kflev)
840 REAL(KIND=8) pud(
kdlon,5,kflev+1)
841 REAL(KIND=8) pwv(
kdlon,kflev)
843 REAL(KIND=8) pfdown(
kdlon,kflev+1)
844 REAL(KIND=8) pfup(
kdlon,kflev+1)
848 INTEGER iind2(2), iind3(3)
849 REAL(KIND=8) zcgaz(
kdlon,kflev)
850 REAL(KIND=8) zfd(
kdlon,kflev+1)
851 REAL(KIND=8) zfu(
kdlon,kflev+1)
852 REAL(KIND=8) zg(
kdlon)
853 REAL(KIND=8) zgg(
kdlon)
854 REAL(KIND=8) zpizaz(
kdlon,kflev)
855 REAL(KIND=8) zrayl(
kdlon)
856 REAL(KIND=8) zray1(
kdlon,kflev+1)
857 REAL(KIND=8) zray2(
kdlon,kflev+1)
858 REAL(KIND=8) zref(
kdlon)
859 REAL(KIND=8) zrefz(
kdlon,2,kflev+1)
860 REAL(KIND=8) zre1(
kdlon)
861 REAL(KIND=8) zre2(
kdlon)
862 REAL(KIND=8) zrj(
kdlon,6,kflev+1)
863 REAL(KIND=8) zrj0(
kdlon,6,kflev+1)
864 REAL(KIND=8) zrk(
kdlon,6,kflev+1)
865 REAL(KIND=8) zrk0(
kdlon,6,kflev+1)
866 REAL(KIND=8) zrl(
kdlon,8)
867 REAL(KIND=8) zrmue(
kdlon,kflev+1)
868 REAL(KIND=8) zrmu0(
kdlon,kflev+1)
869 REAL(KIND=8) zrmuz(
kdlon)
870 REAL(KIND=8) zrneb(
kdlon)
871 REAL(KIND=8) zruef(
kdlon,8)
872 REAL(KIND=8) zr1(
kdlon)
873 REAL(KIND=8) zr2(
kdlon,2)
874 REAL(KIND=8) zr3(
kdlon,3)
875 REAL(KIND=8) zr4(
kdlon)
876 REAL(KIND=8) zr21(
kdlon)
877 REAL(KIND=8) zr22(
kdlon)
878 REAL(KIND=8) zs(
kdlon)
879 REAL(KIND=8) ztauaz(
kdlon,kflev)
880 REAL(KIND=8) zto1(
kdlon)
881 REAL(KIND=8) ztr(
kdlon,2,kflev+1)
882 REAL(KIND=8) ztra1(
kdlon,kflev+1)
883 REAL(KIND=8) ztra2(
kdlon,kflev+1)
884 REAL(KIND=8) ztr1(
kdlon)
885 REAL(KIND=8) ztr2(
kdlon)
886 REAL(KIND=8) zw(
kdlon)
887 REAL(KIND=8) zw1(
kdlon)
889 REAL(KIND=8) zw3(
kdlon,3)
890 REAL(KIND=8) zw4(
kdlon)
891 REAL(KIND=8) zw5(
kdlon)
893 INTEGER jl, jk,
k, jaj, ikm1, ikl, jn, jabs, jkm1
894 INTEGER jref, jkl, jklp1, jajp, jkki, jkkp4, jn2j, iabs
895 REAL(KIND=8) zrmum1, zwh2o, zcneb, zaa, zbb, zrki, zre11
899 IF (type_trac ==
'repr')
THEN
925 zrmum1 = 1. - prmu(jl)
926 zrayl(jl) = rray(knu,1) + zrmum1 * (rray(knu,2) + zrmum1
927 s * (rray(knu,3) + zrmum1 * (rray(knu,4) + zrmum1
928 s * (rray(knu,5) + zrmum1 * rray(knu,6) ))))
945 s , paer , flag_aer, tauae, pizae, cgae
946 s , palbp , pdsig , zrayl, psec
947 s , zcgaz , zpizaz, zray1 , zray2, zrefz, zrj0
948 s , zrk0 , zrmu0 , ztauaz, ztra1, ztra2)
957 s , palbd , pcg , pcld , pdsig, pomega, zrayl
959 s , zcgaz , zpizaz, zray1, zray2, zrefz , zrj , zrk, zrmue
960 s , ztauaz, ztra1 , ztra2)
981 zrefz(jl,2,1) = palbd(jl,knu)
982 zrefz(jl,1,1) = palbd(jl,knu)
991 DO 324 jk = 2 , kflev+1
995 zrneb(jl) = pcld(jl,jkm1)
996 IF (jabs.EQ.1 .AND. zrneb(jl).GT.2.*zeelog)
THEN
997 zwh2o=max(pwv(jl,jkm1),zeelog)
998 zcneb=max(zeelog,min(zrneb(jl),1.-zeelog))
999 zbb=pud(jl,jabs,jkm1)*pqs(jl,jkm1)/zwh2o
1000 zaa=max((pud(jl,jabs,jkm1)-zcneb*zbb)/(1.-zcneb),zeelog)
1002 zaa=pud(jl,jabs,jkm1)
1005 zrki = paki(jl,jabs)
1006 zs(jl) = exp(-zrki * zaa * 1.66)
1007 zg(jl) = exp(-zrki * zaa / zrmue(jl,jk))
1013 zw(jl)= pomega(jl,knu,jkm1)
1014 zto1(jl) = ptau(jl,knu,jkm1) / zw(jl)
1015 s + ztauaz(jl,jkm1) / zpizaz(jl,jkm1)
1018 zr21(jl) = ptau(jl,knu,jkm1) + ztauaz(jl,jkm1)
1019 zr22(jl) = ptau(jl,knu,jkm1) / zr21(jl)
1020 zgg(jl) = zr22(jl) * pcg(jl,knu,jkm1)
1021 s + (1. - zr22(jl)) * zcgaz(jl,jkm1)
1022 zw(jl) = zr21(jl) / zto1(jl)
1023 zref(jl) = zrefz(jl,1,jkm1)
1024 zrmuz(jl) = zrmue(jl,jk)
1028 s zre1, zre2, ztr1, ztr2)
1030 DO 323 jl = 1,
kdlon
1032 zrefz(jl,2,jk) = (1.-zrneb(jl)) * (zray1(jl,jkm1)
1033 s + zrefz(jl,2,jkm1) * ztra1(jl,jkm1)
1034 s * ztra2(jl,jkm1) ) * zg(jl) * zs(jl)
1035 s + zrneb(jl) * zre1(jl)
1037 ztr(jl,2,jkm1)=zrneb(jl)*ztr1(jl)
1038 s + (ztra1(jl,jkm1)) * zg(jl) * (1.-zrneb(jl))
1040 zrefz(jl,1,jk)=(1.-zrneb(jl))*(zray1(jl,jkm1)
1041 s +zrefz(jl,1,jkm1)*ztra1(jl,jkm1)*ztra2(jl,jkm1)
1042 s /(1.-zray2(jl,jkm1)*zrefz(jl,1,jkm1)))*zg(jl)*zs(jl)
1043 s + zrneb(jl) * zre2(jl)
1045 ztr(jl,1,jkm1)= zrneb(jl) * ztr2(jl)
1046 s + (ztra1(jl,jkm1)/(1.-zray2(jl,jkm1)
1047 s * zrefz(jl,1,jkm1)))
1048 s * zg(jl) * (1. -zrneb(jl))
1062 DO 331 jl = 1,
kdlon
1063 zrj(jl,jn,kflev+1) = 1.
1064 zrk(jl,jn,kflev+1) = zrefz(jl,jref,kflev+1)
1067 DO 333 jk = 1 , kflev
1070 DO 332 jl = 1,
kdlon
1071 zre11 = zrj(jl,jn,jklp1) * ztr(jl,jref,jkl)
1072 zrj(jl,jn,jkl) = zre11
1073 zrk(jl,jn,jkl) = zre11 * zrefz(jl,jref,jkl)
1093 DO 414 jk = 1 , kflev+1
1094 DO 413 jaj = 1 , 5 , 2
1096 DO 412 jl = 1,
kdlon
1097 zrj(jl,jaj,jk)= zrj(jl,jaj,jk) - zrj(jl,jajp,jk)
1098 zrk(jl,jaj,jk)= zrk(jl,jaj,jk) - zrk(jl,jajp,jk)
1099 zrj(jl,jaj,jk)= max( zrj(jl,jaj,jk) , zeelog )
1100 zrk(jl,jaj,jk)= max( zrk(jl,jaj,jk) , zeelog )
1105 DO 417 jk = 1 , kflev+1
1106 DO 416 jaj = 2 , 6 , 2
1107 DO 415 jl = 1,
kdlon
1108 zrj(jl,jaj,jk)= max( zrj(jl,jaj,jk) , zeelog )
1109 zrk(jl,jaj,jk)= max( zrk(jl,jaj,jk) , zeelog )
1119 DO 437 jk = 1 , kflev+1
1133 DO 4211 jl = 1,
kdlon
1134 zw2(jl,1) = log( zrj(jl,jn,jk) / zrj(jl,jn2j,jk))
1136 zw2(jl,2) = log( zrk(jl,jn,jk) / zrk(jl,jn2j,jk))
1147 DO 4221 jl = 1,
kdlon
1148 zrl(jl,jkki) = zr2(jl,1)
1149 zruef(jl,jkki) =
zw2(jl,1)
1150 zrl(jl,jkkp4) = zr2(jl,2)
1151 zruef(jl,jkkp4) =
zw2(jl,2)
1163 DO 431 jl = 1,
kdlon
1164 pfdown(jl,jk) = zrj(jl,1,jk) * zrl(jl,1) * zrl(jl,3)
1165 s + zrj(jl,2,jk) * zrl(jl,2) * zrl(jl,4)
1166 pfup(jl,jk) = zrk(jl,1,jk) * zrl(jl,5) * zrl(jl,7)
1167 s + zrk(jl,2,jk) * zrl(jl,6) * zrl(jl,8)
1190 DO 511 jl = 1,
kdlon
1197 zfd(jl,kflev+1)= zrj0(jl,jaj,kflev+1)
1199 DO 514 jk = 1 , kflev
1201 DO 512 jl = 1,
kdlon
1202 zw3(jl,1)=zw3(jl,1)+pud(jl,1,ikl)/zrmu0(jl,ikl)
1203 zw3(jl,2)=zw3(jl,2)+pud(jl,2,ikl)/zrmu0(jl,ikl)
1204 zw3(jl,3)=zw3(jl,3)+poz(jl, ikl)/zrmu0(jl,ikl)
1205 zw4(jl) =zw4(jl) +pud(jl,4,ikl)/zrmu0(jl,ikl)
1206 zw5(jl) =zw5(jl) +pud(jl,5,ikl)/zrmu0(jl,ikl)
1211 DO 513 jl = 1,
kdlon
1213 zfd(jl,ikl) = zr3(jl,1)*zr3(jl,2)*zr3(jl,3)*zr4(jl)
1214 s * zrj0(jl,jaj,ikl)
1224 DO 525 jl = 1,
kdlon
1225 zfu(jl,1) = zfd(jl,1)*palbp(jl,knu)
1228 DO 528 jk = 2 , kflev+1
1230 DO 526 jl = 1,
kdlon
1231 zw3(jl,1)=zw3(jl,1)+pud(jl,1,ikm1)*1.66
1232 zw3(jl,2)=zw3(jl,2)+pud(jl,2,ikm1)*1.66
1233 zw3(jl,3)=zw3(jl,3)+poz(jl, ikm1)*1.66
1234 zw4(jl) =zw4(jl) +pud(jl,4,ikm1)*1.66
1235 zw5(jl) =zw5(jl) +pud(jl,5,ikm1)*1.66
1240 DO 527 jl = 1,
kdlon
1242 zfu(jl,jk) = zr3(jl,1)*zr3(jl,2)*zr3(jl,3)*zr4(jl)
1260 DO 611 jl = 1,
kdlon
1265 pfdown(jl,kflev+1) = ((1.-pclear(jl))*pfdown(jl,kflev+1)
1266 s + pclear(jl) * zfd(jl,kflev+1)) * rsun(knu)
1269 DO 614 jk = 1 , kflev
1271 DO 612 jl = 1,
kdlon
1272 zw1(jl) = zw1(jl)+poz(jl, ikl)/zrmue(jl,ikl)
1273 zw4(jl) = zw4(jl)+pud(jl,4,ikl)/zrmue(jl,ikl)
1274 zw5(jl) = zw5(jl)+pud(jl,5,ikl)/zrmue(jl,ikl)
1280 DO 613 jl = 1,
kdlon
1281 pfdown(jl,ikl) = ((1.-pclear(jl))*zr1(jl)*zr4(jl)*pfdown(jl,ikl)
1282 s +pclear(jl)*zfd(jl,ikl)) * rsun(knu)
1291 DO 621 jl = 1,
kdlon
1292 pfup(jl,1) = ((1.-pclear(jl))*zr1(jl)*zr4(jl) * pfup(jl,1)
1293 s +pclear(jl)*zfu(jl,1)) * rsun(knu)
1296 DO 624 jk = 2 , kflev+1
1298 DO 622 jl = 1,
kdlon
1299 zw1(jl) = zw1(jl)+poz(jl ,ikm1)*1.66
1300 zw4(jl) = zw4(jl)+pud(jl,4,ikm1)*1.66
1301 zw5(jl) = zw5(jl)+pud(jl,5,ikm1)*1.66
1307 DO 623 jl = 1,
kdlon
1308 pfup(jl,jk) = ((1.-pclear(jl))*zr1(jl)*zr4(jl) * pfup(jl,jk)
1309 s +pclear(jl)*zfu(jl,jk)) * rsun(knu)
1318 s , paer , flag_aer, tauae, pizae, cgae
1319 s , palbp , pdsig , prayl , psec
1320 s , pcgaz , ppizaz, pray1 , pray2 , prefz , prj
1321 s , prk , prmu0 , ptauaz, ptra1 , ptra2 )
1328 #include "radepsi.h"
1355 real(kind=8) flag_aer
1356 real(kind=8) tauae(
kdlon,kflev,2)
1357 real(kind=8) pizae(
kdlon,kflev,2)
1358 real(kind=8) cgae(
kdlon,kflev,2)
1359 REAL(KIND=8) paer(
kdlon,kflev,5)
1360 REAL(KIND=8) palbp(
kdlon,2)
1361 REAL(KIND=8) pdsig(
kdlon,kflev)
1362 REAL(KIND=8) prayl(
kdlon)
1363 REAL(KIND=8) psec(
kdlon)
1365 REAL(KIND=8) pcgaz(
kdlon,kflev)
1366 REAL(KIND=8) ppizaz(
kdlon,kflev)
1367 REAL(KIND=8) pray1(
kdlon,kflev+1)
1368 REAL(KIND=8) pray2(
kdlon,kflev+1)
1369 REAL(KIND=8) prefz(
kdlon,2,kflev+1)
1370 REAL(KIND=8) prj(
kdlon,6,kflev+1)
1371 REAL(KIND=8) prk(
kdlon,6,kflev+1)
1372 REAL(KIND=8) prmu0(
kdlon,kflev+1)
1373 REAL(KIND=8) ptauaz(
kdlon,kflev)
1374 REAL(KIND=8) ptra1(
kdlon,kflev+1)
1375 REAL(KIND=8) ptra2(
kdlon,kflev+1)
1379 REAL(KIND=8) zc0i(
kdlon,kflev+1)
1380 REAL(KIND=8) zcle0(
kdlon,kflev)
1381 REAL(KIND=8) zclear(
kdlon)
1382 REAL(KIND=8) zr21(
kdlon)
1383 REAL(KIND=8) zr23(
kdlon)
1384 REAL(KIND=8) zss0(
kdlon)
1385 REAL(KIND=8) zscat(
kdlon)
1386 REAL(KIND=8) ztr(
kdlon,2,kflev+1)
1388 INTEGER jl, jk, ja, jae, jkl, jklp1, jaj, jkm1, in
1389 REAL(KIND=8) ztray, zgar, zratio, zff, zfacoa, zcorae
1390 REAL(KIND=8) zmue, zgap, zww, zto, zden, zmu1, zden1
1391 REAL(KIND=8) zbmu0, zbmu1, zre11
1402 DO 103 jk = 1 , kflev+1
1404 DO 101 jl = 1,
kdlon
1411 DO 108 jk = 1 , kflev
1430 DO 105 jl = 1,
kdlon
1431 ptauaz(jl,jk)=flag_aer * tauae(jl,jk,knu)
1432 ppizaz(jl,jk)=flag_aer * pizae(jl,jk,knu)
1433 pcgaz(jl,jk)=flag_aer * cgae(jl,jk,knu)
1436 IF (flag_aer.GT.0)
THEN
1438 DO 107 jl = 1,
kdlon
1441 ztray = prayl(jl) * pdsig(jl,jk)
1442 zratio = ztray / (ztray + ptauaz(jl,jk))
1445 ptauaz(jl,jk)=ztray+ptauaz(jl,jk)*(1.-ppizaz(jl,jk)*zff)
1446 pcgaz(jl,jk) = zgar * (1. - zratio) / (1. + zgar)
1447 ppizaz(jl,jk) =zratio+(1.-zratio)*ppizaz(jl,jk)*(1.-zff)
1448 s / (1. - ppizaz(jl,jk) * zff)
1452 ztray = prayl(jl) * pdsig(jl,jk)
1453 ptauaz(jl,jk) = ztray
1455 ppizaz(jl,jk) = 1.-repsct
1472 DO 201 jl = 1,
kdlon
1474 zc0i(jl,kflev+1) = 0.
1482 DO 202 jl = 1,
kdlon
1483 zfacoa = 1. - ppizaz(jl,jkl)*pcgaz(jl,jkl)*pcgaz(jl,jkl)
1484 zcorae = zfacoa * ptauaz(jl,jkl) * psec(jl)
1485 zr21(jl) = exp(-zcorae )
1486 zss0(jl) = 1.-zr21(jl)
1487 zcle0(jl,jkl) = zss0(jl)
1489 IF (novlp.EQ.1)
THEN
1491 zclear(jl) = zclear(jl)
1492 s *(1.0-max(zss0(jl),zscat(jl)))
1493 s /(1.0-min(zscat(jl),1.-zepsec))
1494 zc0i(jl,jkl) = 1.0 - zclear(jl)
1495 zscat(jl) = zss0(jl)
1496 ELSE IF (novlp.EQ.2)
THEN
1498 zscat(jl) = max( zss0(jl) , zscat(jl) )
1499 zc0i(jl,jkl) = zscat(jl)
1500 ELSE IF (novlp.EQ.3)
THEN
1502 zclear(jl)=zclear(jl)*(1.0-zss0(jl))
1503 zscat(jl) = 1.0 - zclear(jl)
1504 zc0i(jl,jkl) = zscat(jl)
1508 DO 205 jk = 2 , kflev
1511 DO 204 jl = 1,
kdlon
1512 zfacoa = 1. - ppizaz(jl,jkl)*pcgaz(jl,jkl)*pcgaz(jl,jkl)
1513 zcorae = zfacoa * ptauaz(jl,jkl) * psec(jl)
1514 zr21(jl) = exp(-zcorae )
1515 zss0(jl) = 1.-zr21(jl)
1516 zcle0(jl,jkl) = zss0(jl)
1518 IF (novlp.EQ.1)
THEN
1520 zclear(jl) = zclear(jl)
1521 s *(1.0-max(zss0(jl),zscat(jl)))
1522 s /(1.0-min(zscat(jl),1.-zepsec))
1523 zc0i(jl,jkl) = 1.0 - zclear(jl)
1524 zscat(jl) = zss0(jl)
1525 ELSE IF (novlp.EQ.2)
THEN
1527 zscat(jl) = max( zss0(jl) , zscat(jl) )
1528 zc0i(jl,jkl) = zscat(jl)
1529 ELSE IF (novlp.EQ.3)
THEN
1531 zclear(jl)=zclear(jl)*(1.0-zss0(jl))
1532 zscat(jl) = 1.0 - zclear(jl)
1533 zc0i(jl,jkl) = zscat(jl)
1545 DO 301 jl = 1,
kdlon
1546 pray1(jl,kflev+1) = 0.
1547 pray2(jl,kflev+1) = 0.
1548 prefz(jl,2,1) = palbp(jl,knu)
1549 prefz(jl,1,1) = palbp(jl,knu)
1550 ptra1(jl,kflev+1) = 1.
1551 ptra2(jl,kflev+1) = 1.
1554 DO 346 jk = 2 , kflev+1
1556 DO 342 jl = 1,
kdlon
1566 zmue = (1.-zc0i(jl,jk)) * psec(jl)
1567 s + zc0i(jl,jk) * 1.66
1568 prmu0(jl,jk) = 1./zmue
1578 zgap = pcgaz(jl,jkm1)
1579 zbmu0 = 0.5 - 0.75 * zgap / zmue
1580 zww = ppizaz(jl,jkm1)
1581 zto = ptauaz(jl,jkm1)
1582 zden = 1. + (1. - zww + zbmu0 * zww) * zto * zmue
1583 s + (1-zww) * (1. - zww +2.*zbmu0*zww)*zto*zto*zmue*zmue
1584 pray1(jl,jkm1) = zbmu0 * zww * zto * zmue / zden
1585 ptra1(jl,jkm1) = 1. / zden
1588 zbmu1 = 0.5 - 0.75 * zgap * zmu1
1589 zden1= 1. + (1. - zww + zbmu1 * zww) * zto / zmu1
1590 s + (1-zww) * (1. - zww +2.*zbmu1*zww)*zto*zto/zmu1/zmu1
1591 pray2(jl,jkm1) = zbmu1 * zww * zto / zmu1 / zden1
1592 ptra2(jl,jkm1) = 1. / zden1
1596 prefz(jl,1,jk) = (pray1(jl,jkm1)
1597 s + prefz(jl,1,jkm1) * ptra1(jl,jkm1)
1599 s / (1.-pray2(jl,jkm1)*prefz(jl,1,jkm1)))
1601 ztr(jl,1,jkm1) = (ptra1(jl,jkm1)
1602 s / (1.-pray2(jl,jkm1)*prefz(jl,1,jkm1)))
1604 prefz(jl,2,jk) = (pray1(jl,jkm1)
1605 s + prefz(jl,2,jkm1) * ptra1(jl,jkm1)
1606 s * ptra2(jl,jkm1) )
1608 ztr(jl,2,jkm1) = ptra1(jl,jkm1)
1612 DO 347 jl = 1,
kdlon
1613 zmue = (1.-zc0i(jl,1))*psec(jl)+zc0i(jl,1)*1.66
1627 DO 351 jl = 1,
kdlon
1628 prj(jl,jaj,kflev+1) = 1.
1629 prk(jl,jaj,kflev+1) = prefz(jl, 1,kflev+1)
1632 DO 353 jk = 1 , kflev
1635 DO 352 jl = 1,
kdlon
1636 zre11= prj(jl,jaj,jklp1) * ztr(jl, 1,jkl)
1637 prj(jl,jaj,jkl) = zre11
1638 prk(jl,jaj,jkl) = zre11 * prefz(jl, 1,jkl)
1646 DO 355 jl = 1,
kdlon
1647 prj(jl,jaj,kflev+1) = 1.
1648 prk(jl,jaj,kflev+1) = prefz(jl,jaj,kflev+1)
1651 DO 357 jk = 1 , kflev
1654 DO 356 jl = 1,
kdlon
1655 zre11= prj(jl,jaj,jklp1) * ztr(jl,jaj,jkl)
1656 prj(jl,jaj,jkl) = zre11
1657 prk(jl,jaj,jkl) = zre11 * prefz(jl,jaj,jkl)
1669 s , palbd , pcg , pcld , pdsig, pomega, prayl
1671 s , pcgaz , ppizaz, pray1, pray2, prefz , prj , prk , prmue
1672 s , ptauaz, ptra1 , ptra2 )
1678 #include "radepsi.h"
1710 REAL(KIND=8) palbd(
kdlon,2)
1711 REAL(KIND=8) pcg(
kdlon,2,kflev)
1712 REAL(KIND=8) pcld(
kdlon,kflev)
1713 REAL(KIND=8) pdsig(
kdlon,kflev)
1714 REAL(KIND=8) pomega(
kdlon,2,kflev)
1715 REAL(KIND=8) prayl(
kdlon)
1716 REAL(KIND=8) psec(
kdlon)
1717 REAL(KIND=8) ptau(
kdlon,2,kflev)
1719 REAL(KIND=8) pray1(
kdlon,kflev+1)
1720 REAL(KIND=8) pray2(
kdlon,kflev+1)
1721 REAL(KIND=8) prefz(
kdlon,2,kflev+1)
1722 REAL(KIND=8) prj(
kdlon,6,kflev+1)
1723 REAL(KIND=8) prk(
kdlon,6,kflev+1)
1724 REAL(KIND=8) prmue(
kdlon,kflev+1)
1725 REAL(KIND=8) pcgaz(
kdlon,kflev)
1726 REAL(KIND=8) ppizaz(
kdlon,kflev)
1727 REAL(KIND=8) ptauaz(
kdlon,kflev)
1728 REAL(KIND=8) ptra1(
kdlon,kflev+1)
1729 REAL(KIND=8) ptra2(
kdlon,kflev+1)
1733 REAL(KIND=8) zc1i(
kdlon,kflev+1)
1734 REAL(KIND=8) zcleq(
kdlon,kflev)
1735 REAL(KIND=8) zclear(
kdlon)
1736 REAL(KIND=8) zcloud(
kdlon)
1737 REAL(KIND=8) zgg(
kdlon)
1738 REAL(KIND=8) zref(
kdlon)
1739 REAL(KIND=8) zre1(
kdlon)
1740 REAL(KIND=8) zre2(
kdlon)
1741 REAL(KIND=8) zrmuz(
kdlon)
1742 REAL(KIND=8) zrneb(
kdlon)
1743 REAL(KIND=8) zr21(
kdlon)
1744 REAL(KIND=8) zr22(
kdlon)
1745 REAL(KIND=8) zr23(
kdlon)
1746 REAL(KIND=8) zss1(
kdlon)
1747 REAL(KIND=8) zto1(
kdlon)
1748 REAL(KIND=8) ztr(
kdlon,2,kflev+1)
1749 REAL(KIND=8) ztr1(
kdlon)
1750 REAL(KIND=8) ztr2(
kdlon)
1751 REAL(KIND=8) zw(
kdlon)
1753 INTEGER jk, jl, ja, jkl, jklp1, jkm1, jaj
1754 REAL(KIND=8) zfacoa, zfacoc, zcorae, zcorcd
1755 REAL(KIND=8) zmue, zgap, zww, zto, zden, zden1
1756 REAL(KIND=8) zmu1, zre11, zbmu0, zbmu1
1765 DO 103 jk = 1 , kflev+1
1767 DO 101 jl = 1,
kdlon
1782 DO 201 jl = 1,
kdlon
1784 zc1i(jl,kflev+1) = 0.
1792 DO 202 jl = 1,
kdlon
1793 zfacoa = 1. - ppizaz(jl,jkl)*pcgaz(jl,jkl)*pcgaz(jl,jkl)
1794 zfacoc = 1. - pomega(jl,knu,jkl) * pcg(jl,knu,jkl)
1796 zcorae = zfacoa * ptauaz(jl,jkl) * psec(jl)
1797 zcorcd = zfacoc * ptau(jl,knu,jkl) * psec(jl)
1798 zr21(jl) = exp(-zcorae )
1799 zr22(jl) = exp(-zcorcd )
1800 zss1(jl) = pcld(jl,jkl)*(1.0-zr21(jl)*zr22(jl))
1801 s + (1.0-pcld(jl,jkl))*(1.0-zr21(jl))
1802 zcleq(jl,jkl) = zss1(jl)
1804 IF (novlp.EQ.1)
THEN
1806 zclear(jl) = zclear(jl)
1807 s *(1.0-max(zss1(jl),zcloud(jl)))
1808 s /(1.0-min(zcloud(jl),1.-zepsec))
1809 zc1i(jl,jkl) = 1.0 - zclear(jl)
1810 zcloud(jl) = zss1(jl)
1811 ELSE IF (novlp.EQ.2)
THEN
1813 zcloud(jl) = max( zss1(jl) , zcloud(jl) )
1814 zc1i(jl,jkl) = zcloud(jl)
1815 ELSE IF (novlp.EQ.3)
THEN
1817 zclear(jl) = zclear(jl)*(1.0 - zss1(jl))
1818 zcloud(jl) = 1.0 - zclear(jl)
1819 zc1i(jl,jkl) = zcloud(jl)
1823 DO 205 jk = 2 , kflev
1826 DO 204 jl = 1,
kdlon
1827 zfacoa = 1. - ppizaz(jl,jkl)*pcgaz(jl,jkl)*pcgaz(jl,jkl)
1828 zfacoc = 1. - pomega(jl,knu,jkl) * pcg(jl,knu,jkl)
1830 zcorae = zfacoa * ptauaz(jl,jkl) * psec(jl)
1831 zcorcd = zfacoc * ptau(jl,knu,jkl) * psec(jl)
1832 zr21(jl) = exp(-zcorae )
1833 zr22(jl) = exp(-zcorcd )
1834 zss1(jl) = pcld(jl,jkl)*(1.0-zr21(jl)*zr22(jl))
1835 s + (1.0-pcld(jl,jkl))*(1.0-zr21(jl))
1836 zcleq(jl,jkl) = zss1(jl)
1838 IF (novlp.EQ.1)
THEN
1840 zclear(jl) = zclear(jl)
1841 s *(1.0-max(zss1(jl),zcloud(jl)))
1842 s /(1.0-min(zcloud(jl),1.-zepsec))
1843 zc1i(jl,jkl) = 1.0 - zclear(jl)
1844 zcloud(jl) = zss1(jl)
1845 ELSE IF (novlp.EQ.2)
THEN
1847 zcloud(jl) = max( zss1(jl) , zcloud(jl) )
1848 zc1i(jl,jkl) = zcloud(jl)
1849 ELSE IF (novlp.EQ.3)
THEN
1851 zclear(jl) = zclear(jl)*(1.0 - zss1(jl))
1852 zcloud(jl) = 1.0 - zclear(jl)
1853 zc1i(jl,jkl) = zcloud(jl)
1865 DO 301 jl = 1,
kdlon
1866 pray1(jl,kflev+1) = 0.
1867 pray2(jl,kflev+1) = 0.
1868 prefz(jl,2,1) = palbd(jl,knu)
1869 prefz(jl,1,1) = palbd(jl,knu)
1870 ptra1(jl,kflev+1) = 1.
1871 ptra2(jl,kflev+1) = 1.
1874 DO 346 jk = 2 , kflev+1
1876 DO 342 jl = 1,
kdlon
1877 zrneb(jl)= pcld(jl,jkm1)
1891 zmue = (1.-zc1i(jl,jk)) * psec(jl)
1892 s + zc1i(jl,jk) * 1.66
1893 prmue(jl,jk) = 1./zmue
1903 zgap = pcgaz(jl,jkm1)
1904 zbmu0 = 0.5 - 0.75 * zgap / zmue
1905 zww = ppizaz(jl,jkm1)
1906 zto = ptauaz(jl,jkm1)
1907 zden = 1. + (1. - zww + zbmu0 * zww) * zto * zmue
1908 s + (1-zww) * (1. - zww +2.*zbmu0*zww)*zto*zto*zmue*zmue
1909 pray1(jl,jkm1) = zbmu0 * zww * zto * zmue / zden
1910 ptra1(jl,jkm1) = 1. / zden
1914 zbmu1 = 0.5 - 0.75 * zgap * zmu1
1915 zden1= 1. + (1. - zww + zbmu1 * zww) * zto / zmu1
1916 s + (1-zww) * (1. - zww +2.*zbmu1*zww)*zto*zto/zmu1/zmu1
1917 pray2(jl,jkm1) = zbmu1 * zww * zto / zmu1 / zden1
1918 ptra2(jl,jkm1) = 1. / zden1
1928 zw(jl) = pomega(jl,knu,jkm1)
1929 zto1(jl) = ptau(jl,knu,jkm1)/zw(jl)
1930 s + ptauaz(jl,jkm1)/ppizaz(jl,jkm1)
1931 zr21(jl) = ptau(jl,knu,jkm1) + ptauaz(jl,jkm1)
1932 zr22(jl) = ptau(jl,knu,jkm1) / zr21(jl)
1933 zgg(jl) = zr22(jl) * pcg(jl,knu,jkm1)
1934 s + (1. - zr22(jl)) * pcgaz(jl,jkm1)
1938 IF (zw(jl).EQ.1. .AND. ppizaz(jl,jkm1).EQ.1.)
THEN
1941 zw(jl) = zr21(jl) / zto1(jl)
1943 zref(jl) = prefz(jl,1,jkm1)
1944 zrmuz(jl) = prmue(jl,jk)
1948 s zre1 , zre2 , ztr1 , ztr2)
1950 DO 345 jl = 1,
kdlon
1952 prefz(jl,1,jk) = (1.-zrneb(jl)) * (pray1(jl,jkm1)
1953 s + prefz(jl,1,jkm1) * ptra1(jl,jkm1)
1955 s / (1.-pray2(jl,jkm1)*prefz(jl,1,jkm1)))
1956 s + zrneb(jl) * zre2(jl)
1958 ztr(jl,1,jkm1) = zrneb(jl) * ztr2(jl) + (ptra1(jl,jkm1)
1959 s / (1.-pray2(jl,jkm1)*prefz(jl,1,jkm1)))
1962 prefz(jl,2,jk) = (1.-zrneb(jl)) * (pray1(jl,jkm1)
1963 s + prefz(jl,2,jkm1) * ptra1(jl,jkm1)
1964 s * ptra2(jl,jkm1) )
1965 s + zrneb(jl) * zre1(jl)
1967 ztr(jl,2,jkm1) = zrneb(jl) * ztr1(jl)
1968 s + ptra1(jl,jkm1) * (1.-zrneb(jl))
1972 DO 347 jl = 1,
kdlon
1973 zmue = (1.-zc1i(jl,1))*psec(jl)+zc1i(jl,1)*1.66
1987 DO 351 jl = 1,
kdlon
1988 prj(jl,jaj,kflev+1) = 1.
1989 prk(jl,jaj,kflev+1) = prefz(jl, 1,kflev+1)
1992 DO 353 jk = 1 , kflev
1995 DO 352 jl = 1,
kdlon
1996 zre11= prj(jl,jaj,jklp1) * ztr(jl, 1,jkl)
1997 prj(jl,jaj,jkl) = zre11
1998 prk(jl,jaj,jkl) = zre11 * prefz(jl, 1,jkl)
2006 DO 355 jl = 1,
kdlon
2007 prj(jl,jaj,kflev+1) = 1.
2008 prk(jl,jaj,kflev+1) = prefz(jl,jaj,kflev+1)
2011 DO 357 jk = 1 , kflev
2014 DO 356 jl = 1,
kdlon
2015 zre11= prj(jl,jaj,jklp1) * ztr(jl,jaj,jkl)
2016 prj(jl,jaj,jkl) = zre11
2017 prk(jl,jaj,jkl) = zre11 * prefz(jl,jaj,jkl)
2029 s pre1,pre2,ptr1,ptr2)
2063 REAL(KIND=8) pgg(
kdlon)
2064 REAL(KIND=8) pref(
kdlon)
2065 REAL(KIND=8) prmuz(
kdlon)
2066 REAL(KIND=8) pto1(
kdlon)
2067 REAL(KIND=8) pw(
kdlon)
2068 REAL(KIND=8) pre1(
kdlon)
2069 REAL(KIND=8) pre2(
kdlon)
2070 REAL(KIND=8) ptr1(
kdlon)
2071 REAL(KIND=8) ptr2(
kdlon)
2076 REAL(KIND=8) zff, zgp, ztop, zwcp, zdt, zx1, zwm
2077 REAL(KIND=8) zrm2, zrk, zx2, zrp, zalpha, zbeta, zarg
2078 REAL(KIND=8) zexmu0, zarg2, zexkp, zexkm, zxp2p, zxm2p, zap2b,
2080 REAL(KIND=8) za11, za12, za13, za21, za22, za23
2081 REAL(KIND=8) zdena, zc1a, zc2a, zri0a, zri1a
2082 REAL(KIND=8) zri0b, zri1b
2083 REAL(KIND=8) zb21, zb22, zb23, zdenb, zc1b, zc2b
2084 REAL(KIND=8) zri0c, zri1c, zri0d, zri1d
2091 DO 131 jl = 1,
kdlon
2097 zff = pgg(jl)*pgg(jl)
2098 zgp = pgg(jl)/(1.+pgg(jl))
2099 ztop = (1.- pw(jl) * zff) * pto1(jl)
2100 zwcp = (1-zff)* pw(jl) /(1.- pw(jl) * zff)
2104 zrm2 = prmuz(jl) * prmuz(jl)
2105 zrk = sqrt(3.*zwm*zx1)
2106 zx2 = 4.*(1.-zrk*zrk*zrm2)
2108 zalpha = 3.*zwcp*zrm2*(1.+zgp*zwm)/zx2
2109 zbeta = 3.*zwcp* prmuz(jl) *(1.+3.*zgp*zrm2*zwm)/zx2
2110 zarg=min(ztop/prmuz(jl),200._8)
2112 zarg2=min(zrk*ztop,200._8)
2117 zap2b = zalpha+zdt*zbeta
2118 zam2b = zalpha-zdt*zbeta
2130 zdena = za11 * za22 - za21 * za12
2131 zc1a = (za22*za13-za12*za23)/zdena
2132 zc2a = (za11*za23-za21*za13)/zdena
2133 zri0a = zc1a+zc2a-zalpha
2134 zri1a = zrp*(zc1a-zc2a)-zbeta
2135 pre1(jl) = (zri0a-zdt*zri1a)/ prmuz(jl)
2136 zri0b = zc1a*zexkm+zc2a*zexkp-zalpha*zexmu0
2137 zri1b = zrp*(zc1a*zexkm-zc2a*zexkp)-zbeta*zexmu0
2138 ptr1(jl) = zexmu0+(zri0b+zdt*zri1b)/ prmuz(jl)
2144 zb21 = za21- pref(jl) *zxp2p*zexkm
2145 zb22 = za22- pref(jl) *zxm2p*zexkp
2146 zb23 = za23- pref(jl) *zexmu0*(zap2b - prmuz(jl) )
2147 zdenb = za11 * zb22 - zb21 * za12
2148 zc1b = (zb22*za13-za12*zb23)/zdenb
2149 zc2b = (za11*zb23-zb21*za13)/zdenb
2150 zri0c = zc1b+zc2b-zalpha
2151 zri1c = zrp*(zc1b-zc2b)-zbeta
2152 pre2(jl) = (zri0c-zdt*zri1c) / prmuz(jl)
2153 zri0d = zc1b*zexkm + zc2b*zexkp - zalpha*zexmu0
2154 zri1d = zrp * (zc1b*zexkm - zc2b*zexkp) - zbeta*zexmu0
2155 ptr2(jl) = zexmu0 + (zri0d + zdt*zri1d) / prmuz(jl)
2200 REAL(KIND=8) pu(
kdlon)
2202 REAL(KIND=8) ptr(
kdlon)
2217 DO 201 jl = 1,
kdlon
2218 zr1(jl) = apad(knu,ka,1) + pu(jl) * (apad(knu,ka,2) + pu(jl)
2219 s * ( apad(knu,ka,3) + pu(jl) * (apad(knu,ka,4) + pu(jl)
2220 s * ( apad(knu,ka,5) + pu(jl) * (apad(knu,ka,6) + pu(jl)
2221 s * ( apad(knu,ka,7) ))))))
2223 zr2(jl) = bpad(knu,ka,1) + pu(jl) * (bpad(knu,ka,2) + pu(jl)
2224 s * ( bpad(knu,ka,3) + pu(jl) * (bpad(knu,ka,4) + pu(jl)
2225 s * ( bpad(knu,ka,5) + pu(jl) * (bpad(knu,ka,6) + pu(jl)
2226 s * ( bpad(knu,ka,7) ))))))
2234 ptr(jl) = (zr1(jl) / zr2(jl)) * (1. - d(knu,ka)) + d(knu,ka)
2279 REAL(KIND=8) pu(
kdlon,kabs)
2281 REAL(KIND=8) ptr(
kdlon,kabs)
2285 REAL(KIND=8) zr1(
kdlon)
2286 REAL(KIND=8) zr2(
kdlon)
2287 REAL(KIND=8) zu(
kdlon)
2288 INTEGER jl, ja,
i,
j, ia
2299 DO 201 jl = 1,
kdlon
2301 zr1(jl) = apad(knu,ia,1) + zu(jl) * (apad(knu,ia,2) + zu(jl)
2302 s * ( apad(knu,ia,3) + zu(jl) * (apad(knu,ia,4) + zu(jl)
2303 s * ( apad(knu,ia,5) + zu(jl) * (apad(knu,ia,6) + zu(jl)
2304 s * ( apad(knu,ia,7) ))))))
2306 zr2(jl) = bpad(knu,ia,1) + zu(jl) * (bpad(knu,ia,2) + zu(jl)
2307 s * ( bpad(knu,ia,3) + zu(jl) * (bpad(knu,ia,4) + zu(jl)
2308 s * ( bpad(knu,ia,5) + zu(jl) * (bpad(knu,ia,6) + zu(jl)
2309 s * ( bpad(knu,ia,7) ))))))
2316 ptr(jl,ja) = (zr1(jl)/zr2(jl)) * (1.-d(knu,ia)) + d(knu,ia)
2326 . ptl, ptave, pwv, pozon, paer,
2330 . ptoplw,psollw,ptoplw0,psollw0,
2334 . plwup, plwdn, plwup0, plwdn0)
2340 #include "raddimlw.h"
2342 #include "iniprint.h"
2379 #include "clesphys.h"
2380 REAL(KIND=8) pcldld(
kdlon,kflev)
2381 REAL(KIND=8) pcldlu(
kdlon,kflev)
2382 REAL(KIND=8) pdp(
kdlon,kflev)
2383 REAL(KIND=8) pdt0(
kdlon)
2384 REAL(KIND=8) pemis(
kdlon)
2385 REAL(KIND=8) ppmb(
kdlon,kflev+1)
2386 REAL(KIND=8) ppsol(
kdlon)
2387 REAL(KIND=8) pozon(
kdlon,kflev)
2388 REAL(KIND=8) ptl(
kdlon,kflev+1)
2389 REAL(KIND=8) paer(
kdlon,kflev,5)
2390 REAL(KIND=8) ptave(
kdlon,kflev)
2391 REAL(KIND=8) pview(
kdlon)
2392 REAL(KIND=8) pwv(
kdlon,kflev)
2394 REAL(KIND=8) pcolr(
kdlon,kflev)
2395 REAL(KIND=8) pcolr0(
kdlon,kflev)
2396 REAL(KIND=8) ptoplw(
kdlon)
2397 REAL(KIND=8) psollw(
kdlon)
2398 REAL(KIND=8) ptoplw0(
kdlon)
2399 REAL(KIND=8) psollw0(
kdlon)
2401 real(kind=8) psollwdown(
kdlon)
2407 REAL(KIND=8) plwup(
kdlon,kflev+1)
2408 REAL(KIND=8) plwup0(
kdlon,kflev+1)
2409 REAL(KIND=8) plwdn(
kdlon,kflev+1)
2410 REAL(KIND=8) plwdn0(
kdlon,kflev+1)
2412 REAL(KIND=8) zabcu(
kdlon,nua,3*kflev+1)
2414 REAL(KIND=8) zoz(
kdlon,kflev)
2424 REAL(KIND=8),
allocatable,
save :: zflux(:,:,:)
2425 REAL(KIND=8),
allocatable,
save :: zfluc(:,:,:)
2426 REAL(KIND=8),
allocatable,
save :: zbint(:,:)
2427 REAL(KIND=8),
allocatable,
save :: zbsui(:)
2428 REAL(KIND=8),
allocatable,
save :: zcts(:,:)
2429 REAL(KIND=8),
allocatable,
save :: zcntrb(:,:,:)
2432 INTEGER ilim,
i,
k, kpl1
2439 INTEGER itaplw0, itaplw
2441 SAVE appel1er, itaplw0, itaplw
2443 DATA appel1er /.true./
2444 DATA itaplw0,itaplw /0,0/
2448 WRITE(
lunout,*)
"LW clear-sky calling frequency: ", lw0pas
2449 WRITE(
lunout,*)
"LW cloudy-sky calling frequency: ", lwpas
2450 WRITE(
lunout,*)
" In general, they should be 1"
2452 allocate(zflux(
kdlon,2,kflev+1) )
2453 allocate(zfluc(
kdlon,2,kflev+1) )
2454 allocate(zbint(
kdlon,kflev+1))
2455 allocate(zbsui(
kdlon))
2456 allocate(zcts(
kdlon,kflev))
2457 allocate(zcntrb(
kdlon,kflev+1,kflev+1))
2461 IF (mod(itaplw0,lw0pas).EQ.0)
THEN
2465 zoz(
i,
k) = pozon(
i,
k)*pdp(
i,
k)
2470 s paer,pdp,ppmb,ppsol,zoz,ptave,pview,pwv,zabcu)
2471 CALL
lwbv_lmdar4(ilim,pdp,pdt0,pemis,ppmb,ptl,ptave,zabcu,
2472 s zfluc,zbint,zbsui,zcts,zcntrb)
2475 itaplw0 = itaplw0 + 1
2477 IF (mod(itaplw,lwpas).EQ.0)
THEN
2479 s zfluc,zbint,zbsui,zcts,zcntrb,
2488 pcolr(
i,
k) = zflux(
i,1,kpl1)+zflux(
i,2,kpl1)
2489 . - zflux(
i,1,
k)- zflux(
i,2,
k)
2490 pcolr(
i,
k) = pcolr(
i,
k) * rday*rg/rcpd / pdp(
i,
k)
2491 pcolr0(
i,
k) = zfluc(
i,1,kpl1)+zfluc(
i,2,kpl1)
2492 . - zfluc(
i,1,
k)- zfluc(
i,2,
k)
2493 pcolr0(
i,
k) = pcolr0(
i,
k) * rday*rg/rcpd / pdp(
i,
k)
2497 psollw(
i) = -zflux(
i,1,1)-zflux(
i,2,1)
2498 ptoplw(
i) = zflux(
i,1,kflev+1) + zflux(
i,2,kflev+1)
2500 psollw0(
i) = -zfluc(
i,1,1)-zfluc(
i,2,1)
2501 ptoplw0(
i) = zfluc(
i,1,kflev+1) + zfluc(
i,2,kflev+1)
2502 psollwdown(
i) = -zflux(
i,2,1)
2506 plwup(
i,
k) = zflux(
i,1,
k)
2507 plwup0(
i,
k) = zfluc(
i,1,
k)
2508 plwdn(
i,
k) = zflux(
i,2,
k)
2509 plwdn0(
i,
k) = zfluc(
i,2,
k)
2517 s paer,pdp,ppmb,ppsol,poz,ptave,pview,pwv,
2523 USE chem_rep
, ONLY: RCH42D,
2534 #include "raddimlw.h"
2536 #include "radepsi.h"
2570 #include "clesphys.h"
2571 REAL(KIND=8) paer(
kdlon,kflev,5)
2572 REAL(KIND=8) pdp(
kdlon,kflev)
2573 REAL(KIND=8) ppmb(
kdlon,kflev+1)
2574 REAL(KIND=8) ppsol(
kdlon)
2575 REAL(KIND=8) poz(
kdlon,kflev)
2576 REAL(KIND=8) ptave(
kdlon,kflev)
2577 REAL(KIND=8) pview(
kdlon)
2578 REAL(KIND=8) pwv(
kdlon,kflev)
2580 REAL(KIND=8) pabcu(
kdlon,nua,3*kflev+1)
2584 REAL(KIND=8) zably(
kdlon,nua,3*kflev+1)
2585 REAL(KIND=8) zduc(
kdlon,3*kflev+1)
2586 REAL(KIND=8) zphio(
kdlon)
2587 REAL(KIND=8) zpsc2(
kdlon)
2588 REAL(KIND=8) zpsc3(
kdlon)
2589 REAL(KIND=8) zpsh1(
kdlon)
2590 REAL(KIND=8) zpsh2(
kdlon)
2591 REAL(KIND=8) zpsh3(
kdlon)
2592 REAL(KIND=8) zpsh4(
kdlon)
2593 REAL(KIND=8) zpsh5(
kdlon)
2594 REAL(KIND=8) zpsh6(
kdlon)
2595 REAL(KIND=8) zpsio(
kdlon)
2596 REAL(KIND=8) ztcon(
kdlon)
2597 REAL(KIND=8) zphm6(
kdlon)
2598 REAL(KIND=8) zpsm6(
kdlon)
2599 REAL(KIND=8) zphn6(
kdlon)
2600 REAL(KIND=8) zpsn6(
kdlon)
2601 REAL(KIND=8) zssig(
kdlon,3*kflev+1)
2602 REAL(KIND=8) ztavi(
kdlon)
2603 REAL(KIND=8) zuaer(
kdlon,ninter)
2604 REAL(KIND=8) zxoz(
kdlon)
2605 REAL(KIND=8) zxwv(
kdlon)
2607 INTEGER jl, jk, jkj, jkjr, jkjp, ig1
2608 INTEGER jki, jkip1, ja, jj
2609 INTEGER jkl, jkp1, jkk, jkjpn
2610 INTEGER jae1, jae2, jae3, jae, jjpn
2611 INTEGER ir, jc, jcp1
2612 REAL(KIND=8) zdpm, zupm, zupmh2o, zupmco2, zupmo3, zu6, zup
2613 REAL(KIND=8) zfppw, ztx, ztx2, zzably
2614 REAL(KIND=8) zcah1, zcbh1, zcah2, zcbh2, zcah3, zcbh3
2615 REAL(KIND=8) zcah4, zcbh4, zcah5, zcbh5, zcah6, zcbh6
2616 REAL(KIND=8) zcac8, zcbc8
2617 REAL(KIND=8) zalup, zdiff
2619 REAL(KIND=8) pvgco2, pvgh2o, pvgo3
2642 DO 201 jl = 1,
kdlon
2643 zssig(jl, 1 ) = ppmb(jl,1) * 100.
2646 DO 206 jk = 1 , kflev
2650 DO 203 jl = 1,
kdlon
2651 zssig(jl,jkjp)=ppmb(jl,jk+1)* 100.
2655 DO 204 jl = 1,
kdlon
2656 zssig(jl,jkj)= (zssig(jl,jkjr)+zssig(jl,jkjp))*0.5
2657 s + rt1(ig1) * (zssig(jl,jkjp) - zssig(jl,jkjr)) * 0.5
2670 DO 402 jki=1,3*kflev
2672 DO 401 jl = 1,
kdlon
2673 zably(jl,5,jki)=(zssig(jl,jki)+zssig(jl,jkip1))*0.5
2674 zably(jl,3,jki)=(zssig(jl,jki)-zssig(jl,jkip1))
2679 DO 406 jk = 1 , kflev
2682 DO 403 jl = 1,
kdlon
2683 zxwv(jl) = max(pwv(jl,jk) , zepscq )
2684 zxoz(jl) = max(poz(jl,jk) / pdp(jl,jk) , zepsco )
2688 DO 405 jkk=jkj,jkjpn
2689 DO 404 jl = 1,
kdlon
2690 zdpm = zably(jl,3,jkk)
2691 zupm = zably(jl,5,jkk) * zdpm / 101325.
2692 zupmco2 = ( zably(jl,5,jkk) + pvgco2 ) * zdpm / 101325.
2693 zupmh2o = ( zably(jl,5,jkk) + pvgh2o ) * zdpm / 101325.
2694 zupmo3 = ( zably(jl,5,jkk) + pvgo3 ) * zdpm / 101325.
2696 zably(jl,12,jkk) = zxoz(jl) * zdpm
2697 zably(jl,13,jkk) = zxoz(jl) * zupmo3
2698 zu6 = zxwv(jl) * zupm
2699 zfppw = 1.6078 * zxwv(jl) / (1.+0.608*zxwv(jl))
2700 zably(jl,6,jkk) = zxwv(jl) * zupmh2o
2701 zably(jl,11,jkk) = zu6 * zfppw
2702 zably(jl,10,jkk) = zu6 * (1.-zfppw)
2703 zably(jl,9,jkk) = rco2 * zupmco2
2704 zably(jl,8,jkk) = rco2 * zdpm
2718 DO 501 jl = 1,
kdlon
2719 pabcu(jl,ja,3*kflev+1) = 0.
2723 DO 529 jk = 1 , kflev
2735 jae2=3*kflev+1-(jj+1)
2738 DO 511 jl = 1,
kdlon
2739 zuaer(jl,jae) = (raer(jae,1)*paer(jl,jkl,1)
2740 s +raer(jae,2)*paer(jl,jkl,2)+raer(jae,3)*paer(jl,jkl,3)
2741 s +raer(jae,4)*paer(jl,jkl,4)+raer(jae,5)*paer(jl,jkl,5))
2742 s /(zduc(jl,jae1)+zduc(jl,jae2)+zduc(jl,jae3))
2753 DO 521 jl = 1,
kdlon
2754 ztavi(jl)=ptave(jl,jkl)
2755 ztcon(jl)=exp(6.08*(296./ztavi(jl)-1.))
2758 zzably = zably(jl,6,jae1)+zably(jl,6,jae2)+zably(jl,6,jae3)
2759 zup=min( max( 0.5*r10e*log( zzably ) + 5., 0._8), 6._8)
2760 zcah1=at(1,1)+zup*(at(1,2)+zup*(at(1,3)))
2761 zcbh1=bt(1,1)+zup*(bt(1,2)+zup*(bt(1,3)))
2762 zpsh1(jl)=exp( zcah1 * ztx + zcbh1 * ztx2 )
2763 zcah2=at(2,1)+zup*(at(2,2)+zup*(at(2,3)))
2764 zcbh2=bt(2,1)+zup*(bt(2,2)+zup*(bt(2,3)))
2765 zpsh2(jl)=exp( zcah2 * ztx + zcbh2 * ztx2 )
2766 zcah3=at(3,1)+zup*(at(3,2)+zup*(at(3,3)))
2767 zcbh3=bt(3,1)+zup*(bt(3,2)+zup*(bt(3,3)))
2768 zpsh3(jl)=exp( zcah3 * ztx + zcbh3 * ztx2 )
2769 zcah4=at(4,1)+zup*(at(4,2)+zup*(at(4,3)))
2770 zcbh4=bt(4,1)+zup*(bt(4,2)+zup*(bt(4,3)))
2771 zpsh4(jl)=exp( zcah4 * ztx + zcbh4 * ztx2 )
2772 zcah5=at(5,1)+zup*(at(5,2)+zup*(at(5,3)))
2773 zcbh5=bt(5,1)+zup*(bt(5,2)+zup*(bt(5,3)))
2774 zpsh5(jl)=exp( zcah5 * ztx + zcbh5 * ztx2 )
2775 zcah6=at(6,1)+zup*(at(6,2)+zup*(at(6,3)))
2776 zcbh6=bt(6,1)+zup*(bt(6,2)+zup*(bt(6,3)))
2777 zpsh6(jl)=exp( zcah6 * ztx + zcbh6 * ztx2 )
2778 zphm6(jl)=exp(-5.81e-4 * ztx - 1.13e-6 * ztx2 )
2779 zpsm6(jl)=exp(-5.57e-4 * ztx - 3.30e-6 * ztx2 )
2780 zphn6(jl)=exp(-3.46e-5 * ztx + 2.05e-7 * ztx2 )
2781 zpsn6(jl)=exp( 3.70e-3 * ztx - 2.30e-6 * ztx2 )
2784 DO 522 jl = 1,
kdlon
2785 ztavi(jl)=ptave(jl,jkl)
2788 zzably = zably(jl,9,jae1)+zably(jl,9,jae2)+zably(jl,9,jae3)
2789 zalup = r10e * log( zzably )
2790 zup = max( 0._8, 5.0 + 0.5 * zalup )
2791 zpsc2(jl) = (ztavi(jl)/tref) ** zup
2792 zcac8=at(8,1)+zup*(at(8,2)+zup*(at(8,3)))
2793 zcbc8=bt(8,1)+zup*(bt(8,2)+zup*(bt(8,3)))
2794 zpsc3(jl)=exp( zcac8 * ztx + zcbc8 * ztx2 )
2795 zphio(jl) = exp( oct(1) * ztx + oct(2) * ztx2)
2796 zpsio(jl) = exp( 2.* (oct(3)*ztx+oct(4)*ztx2))
2802 DO 523 jl = 1,
kdlon
2804 pabcu(jl,10,jc)=pabcu(jl,10,jcp1)
2805 s +zably(jl,10,jc) *zdiff
2806 pabcu(jl,11,jc)=pabcu(jl,11,jcp1)
2807 s +zably(jl,11,jc)*ztcon(jl)*zdiff
2809 pabcu(jl,12,jc)=pabcu(jl,12,jcp1)
2810 s +zably(jl,12,jc)*zphio(jl)*zdiff
2811 pabcu(jl,13,jc)=pabcu(jl,13,jcp1)
2812 s +zably(jl,13,jc)*zpsio(jl)*zdiff
2814 pabcu(jl,7,jc)=pabcu(jl,7,jcp1)
2815 s +zably(jl,9,jc)*zpsc2(jl)*zdiff
2816 pabcu(jl,8,jc)=pabcu(jl,8,jcp1)
2817 s +zably(jl,9,jc)*zpsc3(jl)*zdiff
2818 pabcu(jl,9,jc)=pabcu(jl,9,jcp1)
2819 s +zably(jl,9,jc)*zpsc3(jl)*zdiff
2821 pabcu(jl,1,jc)=pabcu(jl,1,jcp1)
2822 s +zably(jl,6,jc)*zpsh1(jl)*zdiff
2823 pabcu(jl,2,jc)=pabcu(jl,2,jcp1)
2824 s +zably(jl,6,jc)*zpsh2(jl)*zdiff
2825 pabcu(jl,3,jc)=pabcu(jl,3,jcp1)
2826 s +zably(jl,6,jc)*zpsh5(jl)*zdiff
2827 pabcu(jl,4,jc)=pabcu(jl,4,jcp1)
2828 s +zably(jl,6,jc)*zpsh3(jl)*zdiff
2829 pabcu(jl,5,jc)=pabcu(jl,5,jcp1)
2830 s +zably(jl,6,jc)*zpsh4(jl)*zdiff
2831 pabcu(jl,6,jc)=pabcu(jl,6,jcp1)
2832 s +zably(jl,6,jc)*zpsh6(jl)*zdiff
2834 pabcu(jl,14,jc)=pabcu(jl,14,jcp1)
2835 s +zuaer(jl,1) *zduc(jl,jc)*zdiff
2836 pabcu(jl,15,jc)=pabcu(jl,15,jcp1)
2837 s +zuaer(jl,2) *zduc(jl,jc)*zdiff
2838 pabcu(jl,16,jc)=pabcu(jl,16,jcp1)
2839 s +zuaer(jl,3) *zduc(jl,jc)*zdiff
2840 pabcu(jl,17,jc)=pabcu(jl,17,jcp1)
2841 s +zuaer(jl,4) *zduc(jl,jc)*zdiff
2842 pabcu(jl,18,jc)=pabcu(jl,18,jcp1)
2843 s +zuaer(jl,5) *zduc(jl,jc)*zdiff
2847 IF (type_trac ==
'repr')
THEN
2849 IF (ok_rtime2d)
THEN
2850 pabcu(jl,19,jc)=pabcu(jl,19,jcp1)
2851 s +zably(jl,8,jc)*rch42d(jl,jc)/rco2*zphm6(jl)*zdiff
2852 pabcu(jl,20,jc)=pabcu(jl,20,jcp1)
2853 s +zably(jl,9,jc)*rch42d(jl,jc)/rco2*zpsm6(jl)*zdiff
2854 pabcu(jl,21,jc)=pabcu(jl,21,jcp1)
2855 s +zably(jl,8,jc)*rn2o2d(jl,jc)/rco2*zphn6(jl)*zdiff
2856 pabcu(jl,22,jc)=pabcu(jl,22,jcp1)
2857 s +zably(jl,9,jc)*rn2o2d(jl,jc)/rco2*zpsn6(jl)*zdiff
2859 pabcu(jl,23,jc)=pabcu(jl,23,jcp1)
2860 s +zably(jl,8,jc)*rcfc112d(jl,jc)/rco2 *zdiff
2861 pabcu(jl,24,jc)=pabcu(jl,24,jcp1)
2862 s +zably(jl,8,jc)*rcfc122d(jl,jc)/rco2 *zdiff
2865 pabcu(jl,19,jc)=pabcu(jl,19,jcp1)
2866 s +zably(jl,8,jc)*rch4/rco2*zphm6(jl)*zdiff
2867 pabcu(jl,20,jc)=pabcu(jl,20,jcp1)
2868 s +zably(jl,9,jc)*rch4/rco2*zpsm6(jl)*zdiff
2869 pabcu(jl,21,jc)=pabcu(jl,21,jcp1)
2870 s +zably(jl,8,jc)*rn2o/rco2*zphn6(jl)*zdiff
2871 pabcu(jl,22,jc)=pabcu(jl,22,jcp1)
2872 s +zably(jl,9,jc)*rn2o/rco2*zpsn6(jl)*zdiff
2874 pabcu(jl,23,jc)=pabcu(jl,23,jcp1)
2875 s +zably(jl,8,jc)*rcfc11/rco2 *zdiff
2876 pabcu(jl,24,jc)=pabcu(jl,24,jcp1)
2877 s +zably(jl,8,jc)*rcfc12/rco2 *zdiff
2881 pabcu(jl,19,jc)=pabcu(jl,19,jcp1)
2882 s +zably(jl,8,jc)*rch4/rco2*zphm6(jl)*zdiff
2883 pabcu(jl,20,jc)=pabcu(jl,20,jcp1)
2884 s +zably(jl,9,jc)*rch4/rco2*zpsm6(jl)*zdiff
2885 pabcu(jl,21,jc)=pabcu(jl,21,jcp1)
2886 s +zably(jl,8,jc)*rn2o/rco2*zphn6(jl)*zdiff
2887 pabcu(jl,22,jc)=pabcu(jl,22,jcp1)
2888 s +zably(jl,9,jc)*rn2o/rco2*zpsn6(jl)*zdiff
2890 pabcu(jl,23,jc)=pabcu(jl,23,jcp1)
2891 s +zably(jl,8,jc)*rcfc11/rco2 *zdiff
2892 pabcu(jl,24,jc)=pabcu(jl,24,jcp1)
2893 s +zably(jl,8,jc)*rcfc12/rco2 *zdiff
2905 s pfluc,pbint,pbsui,pcts,pcntrb)
2911 #include "raddimlw.h"
2949 REAL(KIND=8) pdp(
kdlon,kflev)
2950 REAL(KIND=8) pdt0(
kdlon)
2951 REAL(KIND=8) pemis(
kdlon)
2952 REAL(KIND=8) ppmb(
kdlon,kflev+1)
2953 REAL(KIND=8) ptl(
kdlon,kflev+1)
2954 REAL(KIND=8) ptave(
kdlon,kflev)
2956 REAL(KIND=8) pfluc(
kdlon,2,kflev+1)
2958 REAL(KIND=8) pabcu(
kdlon,nua,3*kflev+1)
2959 REAL(KIND=8) pbint(
kdlon,kflev+1)
2960 REAL(KIND=8) pbsui(
kdlon)
2961 REAL(KIND=8) pcts(
kdlon,kflev)
2962 REAL(KIND=8) pcntrb(
kdlon,kflev+1,kflev+1)
2967 REAL(KIND=8) zb(
kdlon,ninter,kflev+1)
2968 REAL(KIND=8) zbsur(
kdlon,ninter)
2969 REAL(KIND=8) zbtop(
kdlon,ninter)
2970 REAL(KIND=8) zdbsl(
kdlon,ninter,kflev*2)
2971 REAL(KIND=8) zga(
kdlon,8,2,kflev)
2972 REAL(KIND=8) zgb(
kdlon,8,2,kflev)
2973 REAL(KIND=8) zgasur(
kdlon,8,2)
2974 REAL(KIND=8) zgbsur(
kdlon,8,2)
2975 REAL(KIND=8) zgatop(
kdlon,8,2)
2976 REAL(KIND=8) zgbtop(
kdlon,8,2)
2978 INTEGER nuaer, ntraer
2982 s zb,pbint,pbsui,zbsur,zbtop,zdbsl,
2983 s zga,zgb,zgasur,zgbsur,zgatop,zgbtop)
2989 r , pabcu,zb,pbint,pbsui,zbsur,zbtop,zdbsl,pemis,ppmb,ptave
2990 r , zga,zgb,zgasur,zgbsur,zgatop,zgbtop
2991 s , pcntrb,pcts,pfluc)
2996 r pbint,pbsuin,pcts,pcntrb,
3003 #include "radepsi.h"
3052 REAL(KIND=8) pfluc(
kdlon,2,kflev+1)
3053 REAL(KIND=8) pbint(
kdlon,kflev+1)
3054 REAL(KIND=8) pbsuin(
kdlon)
3055 REAL(KIND=8) pcntrb(
kdlon,kflev+1,kflev+1)
3056 REAL(KIND=8) pcts(
kdlon,kflev)
3058 REAL(KIND=8) pcldld(
kdlon,kflev)
3059 REAL(KIND=8) pcldlu(
kdlon,kflev)
3060 REAL(KIND=8) pemis(
kdlon)
3062 REAL(KIND=8) pflux(
kdlon,2,kflev+1)
3068 $ zdnf(
kdlon,kflev+1,kflev+1)
3070 s , zupf(
kdlon,kflev+1,kflev+1)
3071 REAL(KIND=8) zclm(
kdlon,kflev+1,kflev+1)
3073 INTEGER jk, jl, imaxc, imx1, imx2, jkj, jkp1, jkm1
3074 INTEGER jk1, jk2, jkc, jkcp1, jcloud
3075 INTEGER imxm1, imxp1
3086 DO 101 jl = 1,
kdlon
3097 DO 112 jk = 1 , kflev
3098 DO 111 jl = 1,
kdlon
3101 IF (pcldlu(jl,jk).GT.zepsc)
THEN
3106 imaxc=max(imxp(jl),imaxc)
3114 DO 114 jk = 1 , kflev+1
3115 DO 113 jl = 1,
kdlon
3116 pflux(jl,1,jk) = pfluc(jl,1,jk)
3117 pflux(jl,2,jk) = pfluc(jl,2,jk)
3126 IF (imaxc.GT.0)
THEN
3136 DO 203 jk1=1,kflev+1
3137 DO 202 jk2=1,kflev+1
3138 DO 201 jl = 1,
kdlon
3139 zupf(jl,jk2,jk1)=pfluc(jl,1,jk1)
3140 zdnf(jl,jk2,jk1)=pfluc(jl,2,jk1)
3150 DO 213 jkc = 1 , imaxc
3159 DO 2115 jk=jkcp1,kflev+1
3161 DO 2111 jl = 1,
kdlon
3164 IF (jk .GT. jkcp1)
THEN
3165 DO 2113 jkj=jkcp1,jkm1
3166 DO 2112 jl = 1,
kdlon
3167 zfu(jl) = zfu(jl) + pcntrb(jl,jk,jkj)
3172 DO 2114 jl = 1,
kdlon
3173 zupf(jl,jkcp1,jk)=pbint(jl,jk)-zfu(jl)
3184 DO 2121 jl = 1,
kdlon
3188 IF (jk .LT. jcloud)
THEN
3189 DO 2123 jkj=jkp1,jcloud
3190 DO 2122 jl = 1,
kdlon
3191 zfd(jl) = zfd(jl) + pcntrb(jl,jk,jkj)
3195 DO 2124 jl = 1,
kdlon
3196 zdnf(jl,jkcp1,jk)=-pbint(jl,jk)-zfd(jl)
3211 DO 223 jk1 = 1 , kflev+1
3212 DO 222 jk2 = 1 , kflev+1
3213 DO 221 jl = 1,
kdlon
3214 zclm(jl,jk1,jk2) = 0.
3226 DO 244 jk1 = 2 , kflev+1
3227 DO 241 jl = 1,
kdlon
3231 DO 243 jk = jk1 - 1 , 1 , -1
3232 DO 242 jl = 1,
kdlon
3233 IF (novlp.EQ.1)
THEN
3235 zclear(jl)=zclear(jl)*(1.0-max(pcldlu(jl,jk),zcloud(jl)))
3236 * /(1.0-min(zcloud(jl),1.-zepsec))
3237 zclm(jl,jk1,jk) = 1.0 - zclear(jl)
3238 zcloud(jl) = pcldlu(jl,jk)
3239 ELSE IF (novlp.EQ.2)
THEN
3241 zcloud(jl) = max(zcloud(jl) , pcldlu(jl,jk))
3242 zclm(jl,jk1,jk) = zcloud(jl)
3243 ELSE IF (novlp.EQ.3)
THEN
3245 zclear(jl) = zclear(jl)*(1.0 - pcldlu(jl,jk))
3246 zcloud(jl) = 1.0 - zclear(jl)
3247 zclm(jl,jk1,jk) = zcloud(jl)
3259 DO 254 jk1 = 1 , kflev
3260 DO 251 jl = 1,
kdlon
3264 DO 253 jk = jk1 , kflev
3265 DO 252 jl = 1,
kdlon
3266 IF (novlp.EQ.1)
THEN
3268 zclear(jl)=zclear(jl)*(1.0-max(pcldld(jl,jk),zcloud(jl)))
3269 * /(1.0-min(zcloud(jl),1.-zepsec))
3270 zclm(jl,jk1,jk) = 1.0 - zclear(jl)
3271 zcloud(jl) = pcldld(jl,jk)
3272 ELSE IF (novlp.EQ.2)
THEN
3274 zcloud(jl) = max(zcloud(jl) , pcldld(jl,jk))
3275 zclm(jl,jk1,jk) = zcloud(jl)
3276 ELSE IF (novlp.EQ.3)
THEN
3278 zclear(jl) = zclear(jl)*(1.0 - pcldld(jl,jk))
3279 zcloud(jl) = 1.0 - zclear(jl)
3280 zclm(jl,jk1,jk) = zcloud(jl)
3298 DO 311 jl = 1,
kdlon
3299 pflux(jl,2,kflev+1) = 0.
3302 DO 317 jk1 = kflev , 1 , -1
3306 DO 312 jl = 1,
kdlon
3307 zfd(jl) = (1. - zclm(jl,jk1,kflev)) * zdnf(jl,1,jk1)
3312 DO 313 jl = 1,
kdlon
3313 zfd(jl) = zfd(jl) + zclm(jl,jk1,jk1) * zdnf(jl,jk1+1,jk1)
3318 DO 315 jk = kflev-1 , jk1 , -1
3319 DO 314 jl = 1,
kdlon
3320 zcfrac = zclm(jl,jk1,jk+1) - zclm(jl,jk1,jk)
3321 zfd(jl) = zfd(jl) + zcfrac * zdnf(jl,jk+2,jk1)
3325 DO 316 jl = 1,
kdlon
3326 pflux(jl,2,jk1) = zfd(jl)
3339 DO 321 jl = 1,
kdlon
3340 pflux(jl,1,1) = pemis(jl)*pbsuin(jl)-(1.-pemis(jl))*pflux(jl,2,1)
3350 DO 337 jk1 = 2 , kflev+1
3354 DO 332 jl = 1,
kdlon
3355 zfu(jl) = (1. - zclm(jl,jk1,1)) * zupf(jl,1,jk1)
3360 DO 333 jl = 1,
kdlon
3361 zfu(jl) = zfu(jl) + zclm(jl,jk1,jk1-1) * zupf(jl,jk1,jk1)
3366 DO 335 jk = 2 , jk1-1
3367 DO 334 jl = 1,
kdlon
3368 zcfrac = zclm(jl,jk1,jk-1) - zclm(jl,jk1,jk)
3369 zfu(jl) = zfu(jl) + zcfrac * zupf(jl,jk ,jk1)
3373 DO 336 jl = 1,
kdlon
3374 pflux(jl,1,jk1) = zfu(jl)
3387 IF (.NOT.levoigt)
THEN
3388 DO 231 jl = 1,
kdlon
3389 zfn10(jl) = pflux(jl,1,klim) + pflux(jl,2,klim)
3391 DO 233 jk = klim+1 , kflev+1
3392 DO 232 jl = 1,
kdlon
3393 zfn10(jl) = zfn10(jl) + pcts(jl,jk-1)
3394 pflux(jl,1,jk) = zfn10(jl)
3395 pflux(jl,2,jk) = 0.0
3403 s , pb,pbint,pbsuin,pbsur,pbtop,pdbsl
3404 s , pga,pgb,pgasur,pgbsur,pgatop,pgbtop)
3411 #include "raddimlw.h"
3463 REAL(KIND=8) pdt0(
kdlon)
3464 REAL(KIND=8) ptave(
kdlon,kflev)
3465 REAL(KIND=8) ptl(
kdlon,kflev+1)
3467 REAL(KIND=8) pb(
kdlon,ninter,kflev+1)
3468 REAL(KIND=8) pbint(
kdlon,kflev+1)
3469 REAL(KIND=8) pbsuin(
kdlon)
3470 REAL(KIND=8) pbsur(
kdlon,ninter)
3471 REAL(KIND=8) pbtop(
kdlon,ninter)
3472 REAL(KIND=8) pdbsl(
kdlon,ninter,kflev*2)
3473 REAL(KIND=8) pga(
kdlon,8,2,kflev)
3474 REAL(KIND=8) pgb(
kdlon,8,2,kflev)
3475 REAL(KIND=8) pgasur(
kdlon,8,2)
3476 REAL(KIND=8) pgbsur(
kdlon,8,2)
3477 REAL(KIND=8) pgatop(
kdlon,8,2)
3478 REAL(KIND=8) pgbtop(
kdlon,8,2)
3483 REAL(KIND=8) zblay(
kdlon,kflev),zblev(
kdlon,kflev+1)
3486 INTEGER jk, jl, ic, jnu, jf, jg
3488 INTEGER k,
j, ixtox, indto, ixtx, indt
3489 INTEGER indsu, indtp
3490 REAL(KIND=8) zdsto1, zdstox, zdst1, zdstx
4673 DO 102 jk = 1 , kflev+1
4674 DO 101 jl = 1,
kdlon
4678 DO 103 jl = 1,
kdlon
4690 DO 112 jk = 1 , kflev
4691 DO 111 jl = 1,
kdlon
4692 zti(jl)=(ptl(jl,jk)-tstand)/tstand
4693 zres(jl) = xp(1,jnu)+zti(jl)*(xp(2,jnu)+zti(jl)*(xp(3,jnu)
4694 s +zti(jl)*(xp(4,jnu)+zti(jl)*(xp(5,jnu)+zti(jl)*(xp(6,jnu)
4696 pbint(jl,jk)=pbint(jl,jk)+zres(jl)
4697 pb(jl,jnu,jk)= zres(jl)
4698 zblev(jl,jk) = zres(jl)
4699 zti2(jl)=(ptave(jl,jk)-tstand)/tstand
4700 zres2(jl)=xp(1,jnu)+zti2(jl)*(xp(2,jnu)+zti2(jl)*(xp(3,jnu)
4701 s +zti2(jl)*(xp(4,jnu)+zti2(jl)*(xp(5,jnu)+zti2(jl)*(xp(6,jnu)
4703 zblay(jl,jk) = zres2(jl)
4713 DO 121 jl = 1,
kdlon
4714 zti(jl)=(ptl(jl,kflev+1)-tstand)/tstand
4715 zti2(jl) = (ptl(jl,1) + pdt0(jl) - tstand) / tstand
4716 zres(jl) = xp(1,jnu)+zti(jl)*(xp(2,jnu)+zti(jl)*(xp(3,jnu)
4717 s +zti(jl)*(xp(4,jnu)+zti(jl)*(xp(5,jnu)+zti(jl)*(xp(6,jnu)
4719 zres2(jl) = xp(1,jnu)+zti2(jl)*(xp(2,jnu)+zti2(jl)*(xp(3,jnu)
4720 s +zti2(jl)*(xp(4,jnu)+zti2(jl)*(xp(5,jnu)+zti2(jl)*(xp(6,jnu)
4722 pbint(jl,kflev+1) = pbint(jl,kflev+1)+zres(jl)
4723 pb(jl,jnu,kflev+1)= zres(jl)
4724 zblev(jl,kflev+1) = zres(jl)
4725 pbtop(jl,jnu) = zres(jl)
4726 pbsur(jl,jnu) = zres2(jl)
4727 pbsuin(jl) = pbsuin(jl) + zres2(jl)
4736 DO 132 jk = 1 , kflev
4739 DO 131 jl = 1,
kdlon
4740 pdbsl(jl,jnu,jk1) = zblay(jl,jk ) - zblev(jl,jk)
4741 pdbsl(jl,jnu,jk2) = zblev(jl,jk+1) - zblay(jl,jk)
4756 zdsto1 = (ptl(jl,kflev+1)-tintp(1)) / tstp
4757 ixtox = max( 1, min( mxixt, int( zdsto1 + 1. ) ) )
4758 zdstox = (ptl(jl,kflev+1)-tintp(ixtox))/tstp
4759 IF (zdstox.LT.0.5)
THEN
4765 zdst1 = (ptl(jl,1)-tintp(1)) / tstp
4766 ixtx = max( 1, min( mxixt, int( zdst1 + 1. ) ) )
4767 zdstx = (ptl(jl,1)-tintp(ixtx))/tstp
4768 IF (zdstx.LT.0.5)
THEN
4780 pgasur(jl,jg,jf)=ga(indsu,2*jg-1,jf)
4781 pgbsur(jl,jg,jf)=gb(indsu,2*jg-1,jf)
4783 pgatop(jl,jg,jf)=ga(indtp,2*jg-1,jf)
4784 pgbtop(jl,jg,jf)=gb(indtp,2*jg-1,jf)
4793 zdst1 = (ptave(jl,jk)-tintp(1)) / tstp
4794 ixtx = max( 1, min( mxixt, int( zdst1 + 1. ) ) )
4795 zdstx = (ptave(jl,jk)-tintp(ixtx))/tstp
4796 IF (zdstx.LT.0.5)
THEN
4808 pga(jl,jg,jf,jk)=ga(indt,2*jg,jf)
4809 pgb(jl,jg,jf,jk)=gb(indt,2*jg,jf)
4820 r , pabcu,pb,pbint,pbsuin,pbsur,pbtop,pdbsl,pemis,ppmb,ptave
4821 r , pga,pgb,pgasur,pgbsur,pgatop,pgbtop
4822 s , pcntrb,pcts,pfluc)
4828 #include "raddimlw.h"
4862 INTEGER kuaer,ktraer, klim
4864 REAL(KIND=8) pabcu(
kdlon,nua,3*kflev+1)
4865 REAL(KIND=8) pb(
kdlon,ninter,kflev+1)
4866 REAL(KIND=8) pbint(
kdlon,kflev+1)
4867 REAL(KIND=8) pbsur(
kdlon,ninter)
4868 REAL(KIND=8) pbsuin(
kdlon)
4869 REAL(KIND=8) pbtop(
kdlon,ninter)
4870 REAL(KIND=8) pdbsl(
kdlon,ninter,kflev*2)
4871 REAL(KIND=8) pemis(
kdlon)
4872 REAL(KIND=8) ppmb(
kdlon,kflev+1)
4873 REAL(KIND=8) ptave(
kdlon,kflev)
4874 REAL(KIND=8) pga(
kdlon,8,2,kflev)
4875 REAL(KIND=8) pgb(
kdlon,8,2,kflev)
4876 REAL(KIND=8) pgasur(
kdlon,8,2)
4877 REAL(KIND=8) pgbsur(
kdlon,8,2)
4878 REAL(KIND=8) pgatop(
kdlon,8,2)
4879 REAL(KIND=8) pgbtop(
kdlon,8,2)
4881 REAL(KIND=8) pcntrb(
kdlon,kflev+1,kflev+1)
4882 REAL(KIND=8) pcts(
kdlon,kflev)
4883 REAL(KIND=8) pfluc(
kdlon,2,kflev+1)
4886 REAL(KIND=8) zadjd(
kdlon,kflev+1)
4887 REAL(KIND=8) zadju(
kdlon,kflev+1)
4888 REAL(KIND=8) zdbdt(
kdlon,ninter,kflev)
4889 REAL(KIND=8) zdisd(
kdlon,kflev+1)
4890 REAL(KIND=8) zdisu(
kdlon,kflev+1)
4913 r , pabcu,pdbsl,pga,pgb
4914 s , zadjd,zadju,pcntrb,zdbdt)
4918 r , pabcu,zdbdt,pga,pgb
4919 s , pcntrb,zdisd,zdisu)
4924 r , pabcu,zadjd,zadju,pb,pbint,pbsuin,pbsur,pbtop
4925 r , zdisd,zdisu,pemis,ppmb
4926 r , pga,pgb,pgasur,pgbsur,pgatop,pgbtop
4933 r , pabcu,padjd,padju,pb,pbint,pbsui,pbsur,pbtop
4934 r , pdisd,pdisu,pemis,ppmb
4935 r , pga,pgb,pgasur,pgbsur,pgatop,pgbtop
4942 #include "raddimlw.h"
4979 INTEGER kuaer,ktraer, klim
4981 REAL(KIND=8) pabcu(
kdlon,nua,3*kflev+1)
4982 REAL(KIND=8) padjd(
kdlon,kflev+1)
4983 REAL(KIND=8) padju(
kdlon,kflev+1)
4984 REAL(KIND=8) pb(
kdlon,ninter,kflev+1)
4985 REAL(KIND=8) pbint(
kdlon,kflev+1)
4986 REAL(KIND=8) pbsur(
kdlon,ninter)
4987 REAL(KIND=8) pbsui(
kdlon)
4988 REAL(KIND=8) pbtop(
kdlon,ninter)
4989 REAL(KIND=8) pdisd(
kdlon,kflev+1)
4990 REAL(KIND=8) pdisu(
kdlon,kflev+1)
4991 REAL(KIND=8) pemis(
kdlon)
4992 REAL(KIND=8) ppmb(
kdlon,kflev+1)
4993 REAL(KIND=8) pga(
kdlon,8,2,kflev)
4994 REAL(KIND=8) pgb(
kdlon,8,2,kflev)
4995 REAL(KIND=8) pgasur(
kdlon,8,2)
4996 REAL(KIND=8) pgbsur(
kdlon,8,2)
4997 REAL(KIND=8) pgatop(
kdlon,8,2)
4998 REAL(KIND=8) pgbtop(
kdlon,8,2)
5000 REAL(KIND=8) pfluc(
kdlon,2,kflev+1)
5001 REAL(KIND=8) pcts(
kdlon,kflev)
5005 REAL(KIND=8) zbgnd(
kdlon)
5006 REAL(KIND=8) zfd(
kdlon)
5007 REAL(KIND=8) zfn10(
kdlon)
5008 REAL(KIND=8) zfu(
kdlon)
5009 REAL(KIND=8) ztt(
kdlon,ntra)
5010 REAL(KIND=8) ztt1(
kdlon,ntra)
5011 REAL(KIND=8) ztt2(
kdlon,ntra)
5012 REAL(KIND=8) zuu(
kdlon,nua)
5013 REAL(KIND=8) zcnsol(
kdlon)
5014 REAL(KIND=8) zcntop(
kdlon)
5017 INTEGER jstra, jstru
5018 INTEGER ind1, ind2, ind3, ind4, in, jlim
5065 DO 235 jk = 1 , kflev
5070 zuu(jl,ja)=pabcu(jl,ja,in)
5075 CALL
lwtt_lmdar4(pgatop(1,1,1), pgbtop(1,1,1), zuu, ztt)
5077 DO 234 jl = 1,
kdlon
5078 zcntop(jl)=pbtop(jl,1)*ztt(jl,1) *ztt(jl,10)
5079 2 +pbtop(jl,2)*ztt(jl,2)*ztt(jl,7)*ztt(jl,11)
5080 3 +pbtop(jl,3)*ztt(jl,4)*ztt(jl,8)*ztt(jl,12)
5081 4 +pbtop(jl,4)*ztt(jl,5)*ztt(jl,9)*ztt(jl,13)
5082 5 +pbtop(jl,5)*ztt(jl,3) *ztt(jl,14)
5083 6 +pbtop(jl,6)*ztt(jl,6) *ztt(jl,15)
5084 zfd(jl)=zcntop(jl)-pbint(jl,jk)-pdisd(jl,jk)-padjd(jl,jk)
5085 pfluc(jl,2,jk)=zfd(jl)
5093 DO 236 jl = 1,
kdlon
5094 zcntop(jl)= pbtop(jl,1)
5100 zfd(jl)=zcntop(jl)-pbint(jl,jk)-pdisd(jl,jk)-padjd(jl,jk)
5101 pfluc(jl,2,jk)=zfd(jl)
5117 IF (.NOT.levoigt)
THEN
5118 DO 2412 jk = kflev,1,-1
5119 IF(ppmb(1,jk).LT.10.0)
THEN
5126 IF (.NOT.levoigt)
THEN
5138 DO 2427 jstra = kflev,jlim,-1
5139 jstru=(jstra-1)*ng1p1+1
5143 zuu(jl,ja)=pabcu(jl,ja,jstru)
5148 CALL
lwtt_lmdar4(pga(1,1,1,jstra), pgb(1,1,1,jstra), zuu, ztt)
5150 DO 2424 jl = 1,
kdlon
5152 1 (pb(jl,1,jstra)+pb(jl,1,jstra+1))
5153 1 *(ztt1(jl,1) *ztt1(jl,10)
5154 1 - ztt(jl,1) *ztt(jl,10))
5155 2 +(pb(jl,2,jstra)+pb(jl,2,jstra+1))
5156 2 *(ztt1(jl,2)*ztt1(jl,7)*ztt1(jl,11)
5157 2 - ztt(jl,2)*ztt(jl,7)*ztt(jl,11))
5158 3 +(pb(jl,3,jstra)+pb(jl,3,jstra+1))
5159 3 *(ztt1(jl,4)*ztt1(jl,8)*ztt1(jl,12)
5160 3 - ztt(jl,4)*ztt(jl,8)*ztt(jl,12))
5161 4 +(pb(jl,4,jstra)+pb(jl,4,jstra+1))
5162 4 *(ztt1(jl,5)*ztt1(jl,9)*ztt1(jl,13)
5163 4 - ztt(jl,5)*ztt(jl,9)*ztt(jl,13))
5164 5 +(pb(jl,5,jstra)+pb(jl,5,jstra+1))
5165 5 *(ztt1(jl,3) *ztt1(jl,14)
5166 5 - ztt(jl,3) *ztt(jl,14))
5167 6 +(pb(jl,6,jstra)+pb(jl,6,jstra+1))
5168 6 *(ztt1(jl,6) *ztt1(jl,15)
5169 6 - ztt(jl,6) *ztt(jl,15))
5170 pcts(jl,jstra)=zctstr*0.5
5174 ztt1(jl,ja)=ztt(jl,ja)
5181 DO 2429 jstra = 1,kflev
5182 DO 2428 jl = 1,
kdlon
5194 DO 251 jl = 1,
kdlon
5195 zbgnd(jl)=pbsui(jl)*pemis(jl)-(1.-pemis(jl))
5196 s *pfluc(jl,2,1)-pbint(jl,1)
5202 DO 252 jl = 1,
kdlon
5203 zcnsol(jl)=pbsur(jl,1)
5209 zcnsol(jl)=zcnsol(jl)*zbgnd(jl)/pbsui(jl)
5210 zfu(jl)=zcnsol(jl)+pbint(jl,jk)-pdisu(jl,jk)-padju(jl,jk)
5211 pfluc(jl,1,jk)=zfu(jl)
5214 DO 257 jk = 2 , kflev+1
5220 zuu(jl,ja)=pabcu(jl,ja,1)-pabcu(jl,ja,in)
5225 CALL
lwtt_lmdar4(pgasur(1,1,1), pgbsur(1,1,1), zuu, ztt)
5227 DO 256 jl = 1,
kdlon
5228 zcnsol(jl)=pbsur(jl,1)*ztt(jl,1) *ztt(jl,10)
5229 2 +pbsur(jl,2)*ztt(jl,2)*ztt(jl,7)*ztt(jl,11)
5230 3 +pbsur(jl,3)*ztt(jl,4)*ztt(jl,8)*ztt(jl,12)
5231 4 +pbsur(jl,4)*ztt(jl,5)*ztt(jl,9)*ztt(jl,13)
5232 5 +pbsur(jl,5)*ztt(jl,3) *ztt(jl,14)
5233 6 +pbsur(jl,6)*ztt(jl,6) *ztt(jl,15)
5234 zcnsol(jl)=zcnsol(jl)*zbgnd(jl)/pbsui(jl)
5235 zfu(jl)=zcnsol(jl)+pbint(jl,jk)-pdisu(jl,jk)-padju(jl,jk)
5236 pfluc(jl,1,jk)=zfu(jl)
5249 IF (.NOT.levoigt)
THEN
5250 DO 271 jl = 1,
kdlon
5251 zfn10(jl) = pfluc(jl,1,jlim) + pfluc(jl,2,jlim)
5253 DO 273 jk = jlim+1,kflev+1
5254 DO 272 jl = 1,
kdlon
5255 zfn10(jl) = zfn10(jl) + pcts(jl,jk-1)
5256 pfluc(jl,1,jk) = zfn10(jl)
5269 s , pcntrb,pdisd,pdisu)
5275 #include "raddimlw.h"
5304 INTEGER kuaer,ktraer
5306 REAL(KIND=8) pabcu(
kdlon,nua,3*kflev+1)
5307 REAL(KIND=8) pdbdt(
kdlon,ninter,kflev)
5308 REAL(KIND=8) pga(
kdlon,8,2,kflev)
5309 REAL(KIND=8) pgb(
kdlon,8,2,kflev)
5311 REAL(KIND=8) pcntrb(
kdlon,kflev+1,kflev+1)
5312 REAL(KIND=8) pdisd(
kdlon,kflev+1)
5313 REAL(KIND=8) pdisu(
kdlon,kflev+1)
5317 REAL(KIND=8) zglayd(
kdlon)
5318 REAL(KIND=8) zglayu(
kdlon)
5319 REAL(KIND=8) ztt(
kdlon,ntra)
5320 REAL(KIND=8) ztt1(
kdlon,ntra)
5321 REAL(KIND=8) ztt2(
kdlon,ntra)
5323 INTEGER jl, jk, ja, ikp1, ikn, ikd1, jkj, ikd2
5324 INTEGER ikjp1, ikm1, ikj, jlk, iku1, ijkl, iku2
5325 INTEGER ind1, ind2, ind3, ind4, itt
5326 REAL(KIND=8) zww, zdzxdg, zdzxmg
5338 DO 112 jk = 1, kflev+1
5339 DO 111 jl = 1,
kdlon
5352 DO 121 jl = 1,
kdlon
5390 DO 225 jk = 1 , kflev-1
5396 2 , pabcu(1,1,ikn),pabcu(1,1,ikd1),ztt1)
5406 DO 224 jkj=ikp1,kflev
5417 2 , pabcu(1,1,ikn),pabcu(1,1,ikd2),ztt1)
5420 2 , pabcu(1,1,ikn),pabcu(1,1,ikd2),ztt2)
5423 DO 2235 ja = 1, ktraer
5424 DO 2234 jl = 1,
kdlon
5425 ztt(jl,ja) = (ztt1(jl,ja)+ztt2(jl,ja))*0.5
5429 DO 2236 jl = 1,
kdlon
5430 zww=pdbdt(jl,1,jkj)*ztt(jl,1) *ztt(jl,10)
5431 s +pdbdt(jl,2,jkj)*ztt(jl,2)*ztt(jl,7)*ztt(jl,11)
5432 s +pdbdt(jl,3,jkj)*ztt(jl,4)*ztt(jl,8)*ztt(jl,12)
5433 s +pdbdt(jl,4,jkj)*ztt(jl,5)*ztt(jl,9)*ztt(jl,13)
5434 s +pdbdt(jl,5,jkj)*ztt(jl,3) *ztt(jl,14)
5435 s +pdbdt(jl,6,jkj)*ztt(jl,6) *ztt(jl,15)
5438 pdisd(jl,jk)=pdisd(jl,jk)+zdzxdg
5439 pcntrb(jl,jk,ikjp1)=zdzxdg
5467 2 , pabcu(1,1,iku1),pabcu(1,1,ikn),ztt1)
5484 iku2=(ijkl-1)*ng1p1+1
5489 2 , pabcu(1,1,iku2),pabcu(1,1,ikn),ztt1)
5492 2 , pabcu(1,1,iku2),pabcu(1,1,ikn),ztt2)
5495 DO 2265 ja = 1, ktraer
5496 DO 2264 jl = 1,
kdlon
5497 ztt(jl,ja) = (ztt1(jl,ja)+ztt2(jl,ja))*0.5
5501 DO 2266 jl = 1,
kdlon
5502 zww=pdbdt(jl,1,ijkl)*ztt(jl,1) *ztt(jl,10)
5503 s +pdbdt(jl,2,ijkl)*ztt(jl,2)*ztt(jl,7)*ztt(jl,11)
5504 s +pdbdt(jl,3,ijkl)*ztt(jl,4)*ztt(jl,8)*ztt(jl,12)
5505 s +pdbdt(jl,4,ijkl)*ztt(jl,5)*ztt(jl,9)*ztt(jl,13)
5506 s +pdbdt(jl,5,ijkl)*ztt(jl,3) *ztt(jl,14)
5507 s +pdbdt(jl,6,ijkl)*ztt(jl,6) *ztt(jl,15)
5510 pdisu(jl,jk)=pdisu(jl,jk)+zdzxmg
5511 pcntrb(jl,jk,ijkl)=zdzxmg
5521 r , pabcu,pdbsl,pga,pgb
5522 s , padjd,padju,pcntrb,pdbdt)
5529 #include "raddimlw.h"
5560 INTEGER kuaer,ktraer
5562 REAL(KIND=8) pabcu(
kdlon,nua,3*kflev+1)
5563 REAL(KIND=8) pdbsl(
kdlon,ninter,kflev*2)
5564 REAL(KIND=8) pga(
kdlon,8,2,kflev)
5565 REAL(KIND=8) pgb(
kdlon,8,2,kflev)
5567 REAL(KIND=8) padjd(
kdlon,kflev+1)
5568 REAL(KIND=8) padju(
kdlon,kflev+1)
5569 REAL(KIND=8) pcntrb(
kdlon,kflev+1,kflev+1)
5570 REAL(KIND=8) pdbdt(
kdlon,ninter,kflev)
5574 REAL(KIND=8) zglayd(
kdlon)
5575 REAL(KIND=8) zglayu(
kdlon)
5576 REAL(KIND=8) ztt(
kdlon,ntra)
5577 REAL(KIND=8) ztt1(
kdlon,ntra)
5578 REAL(KIND=8) ztt2(
kdlon,ntra)
5579 REAL(KIND=8) zuu(
kdlon,nua)
5581 INTEGER jk, jl, ja, im12, ind, inu, ixu, jg
5582 INTEGER ixd, ibs, idd, imu, jk1, jk2, jnu
5598 DO 112 jk = 1 , kflev+1
5599 DO 111 jl = 1,
kdlon
5610 DO 122 ja = 1 , ntra
5611 DO 121 jl = 1,
kdlon
5619 DO 123 jl = 1,
kdlon
5637 DO 215 jk = 1 , kflev
5645 ind = (jk - 1) * ng1p1 + 1
5647 inu = jk * ng1p1 + 1
5650 DO 2111 jl = 1,
kdlon
5658 DO 2113 ja = 1 , kuaer
5659 DO 2112 jl = 1,
kdlon
5660 zuu(jl,ja) = pabcu(jl,ja,ind) - pabcu(jl,ja,idd)
5665 CALL
lwtt_lmdar4(pga(1,1,1,jk), pgb(1,1,1,jk), zuu, ztt)
5667 DO 2114 jl = 1,
kdlon
5668 zwtr=pdbsl(jl,1,ibs)*ztt(jl,1) *ztt(jl,10)
5669 s +pdbsl(jl,2,ibs)*ztt(jl,2)*ztt(jl,7)*ztt(jl,11)
5670 s +pdbsl(jl,3,ibs)*ztt(jl,4)*ztt(jl,8)*ztt(jl,12)
5671 s +pdbsl(jl,4,ibs)*ztt(jl,5)*ztt(jl,9)*ztt(jl,13)
5672 s +pdbsl(jl,5,ibs)*ztt(jl,3) *ztt(jl,14)
5673 s +pdbsl(jl,6,ibs)*ztt(jl,6) *ztt(jl,15)
5674 zglayd(jl)=zglayd(jl)+zwtr*wg1(jg)
5683 DO 2122 ja = 1 , kuaer
5684 DO 2121 jl = 1,
kdlon
5685 zuu(jl,ja) = pabcu(jl,ja,imu) - pabcu(jl,ja,inu)
5690 CALL
lwtt_lmdar4(pga(1,1,1,jk), pgb(1,1,1,jk), zuu, ztt)
5692 DO 2123 jl = 1,
kdlon
5693 zwtr=pdbsl(jl,1,ibs)*ztt(jl,1) *ztt(jl,10)
5694 s +pdbsl(jl,2,ibs)*ztt(jl,2)*ztt(jl,7)*ztt(jl,11)
5695 s +pdbsl(jl,3,ibs)*ztt(jl,4)*ztt(jl,8)*ztt(jl,12)
5696 s +pdbsl(jl,4,ibs)*ztt(jl,5)*ztt(jl,9)*ztt(jl,13)
5697 s +pdbsl(jl,5,ibs)*ztt(jl,3) *ztt(jl,14)
5698 s +pdbsl(jl,6,ibs)*ztt(jl,6) *ztt(jl,15)
5699 zglayu(jl)=zglayu(jl)+zwtr*wg1(jg)
5704 DO 214 jl = 1,
kdlon
5705 padjd(jl,jk) = zglayd(jl)
5706 pcntrb(jl,jk,jk+1) = zglayd(jl)
5707 padju(jl,jk+1) = zglayu(jl)
5708 pcntrb(jl,jk+1,jk) = zglayu(jl)
5709 pcntrb(jl,jk ,jk) = 0.0
5714 DO 218 jk = 1 , kflev
5717 DO 217 jnu = 1 , ninter
5718 DO 216 jl = 1,
kdlon
5719 pdbdt(jl,jnu,jk) = pdbsl(jl,jnu,jk1) + pdbsl(jl,jnu,jk2)
5733 #include "raddimlw.h"
5766 REAL(KIND=8) o1h, o2h
5769 REAL(KIND=8) rpialf0
5774 REAL(KIND=8) puu(
kdlon,nua)
5775 REAL(KIND=8) ptt(
kdlon,ntra)
5776 REAL(KIND=8) pga(
kdlon,8,2)
5777 REAL(KIND=8) pgb(
kdlon,8,2)
5781 REAL(KIND=8) zz, zxd, zxn
5782 REAL(KIND=8) zpu, zpu10, zpu11, zpu12, zpu13
5783 REAL(KIND=8) zeu, zeu10, zeu11, zeu12, zeu13
5784 REAL(KIND=8) zx, zy, zsq1, zsq2, zvxy, zuxy
5785 REAL(KIND=8) zaercn, zto1, zto2, zxch4, zych4, zxn2o, zyn2o
5786 REAL(KIND=8) zsqn21, zodn21, zsqh42, zodh42
5787 REAL(KIND=8) zsqh41, zodh41, zsqn22, zodn22, zttf11, zttf12
5788 REAL(KIND=8) zuu11, zuu12, za11, za12
5800 DO 120 jl = 1,
kdlon
5801 zz =sqrt(puu(jl,ja))
5805 zxd =pgb( jl,ja,1) + zz *(pgb( jl,ja,2) + zz )
5806 zxn =pga( jl,ja,1) + zz *(pga( jl,ja,2) )
5818 DO 201 jl = 1,
kdlon
5819 ptt(jl, 9) = ptt(jl, 8)
5823 zpu = 0.002 * puu(jl,10)
5838 zuxy = 4. * zx * zx / (rpialf0 * zy)
5839 zsq1 = sqrt(1. + o1h * zuxy ) - 1.
5840 zsq2 = sqrt(1. + o2h * zuxy ) - 1.
5841 zvxy = rpialf0 * zy / (2. * zx)
5842 zaercn = puu(jl,17) + zeu12 + zpu12
5843 zto1 = exp( - zvxy * zsq1 - zaercn )
5844 zto2 = exp( - zvxy * zsq2 - zaercn )
5854 zuxy = 4. * zxch4*zxch4/(0.103*zych4)
5855 zsqh41 = sqrt(1. + 33.7 * zuxy) - 1.
5856 zvxy = 0.103 * zych4 / (2. * zxch4)
5857 zodh41 = zvxy * zsqh41
5863 zuxy = 4. * zxn2o*zxn2o/(0.416*zyn2o)
5864 zsqn21 = sqrt(1. + 21.3 * zuxy) - 1.
5865 zvxy = 0.416 * zyn2o / (2. * zxn2o)
5866 zodn21 = zvxy * zsqn21
5870 zuxy = 4. * zxch4*zxch4/(0.113*zych4)
5871 zsqh42 = sqrt(1. + 400. * zuxy) - 1.
5872 zvxy = 0.113 * zych4 / (2. * zxch4)
5873 zodh42 = zvxy * zsqh42
5877 zuxy = 4. * zxn2o*zxn2o/(0.197*zyn2o)
5878 zsqn22 = sqrt(1. + 2000. * zuxy) - 1.
5879 zvxy = 0.197 * zyn2o / (2. * zxn2o)
5880 zodn22 = zvxy * zsqn22
5884 za11 = 2. * puu(jl,23) * 4.404e+05
5885 zttf11 = 1. - za11 * 0.003225
5889 za12 = 2. * puu(jl,24) * 6.7435e+05
5890 zttf12 = 1. - za12 * 0.003225
5892 zuu11 = - puu(jl,15) - zeu10 - zpu10
5893 zuu12 = - puu(jl,16) - zeu11 - zpu11 - zodh41 - zodn21
5894 ptt(jl,10) = exp( - puu(jl,14) )
5895 ptt(jl,11) = exp( zuu11 )
5896 ptt(jl,12) = exp( zuu12 ) * zttf11 * zttf12
5897 ptt(jl,13) = 0.7554 * zto1 + 0.2446 * zto2
5898 ptt(jl,14) = ptt(jl,10) * exp( - zeu13 - zpu13 )
5899 ptt(jl,15) = exp( - puu(jl,14) - zodh42 - zodn22 )
5910 #include "raddimlw.h"
5943 REAL(KIND=8) o1h, o2h
5946 REAL(KIND=8) rpialf0
5951 REAL(KIND=8) pga(
kdlon,8,2)
5952 REAL(KIND=8) pgb(
kdlon,8,2)
5953 REAL(KIND=8) puu1(
kdlon,nua)
5954 REAL(KIND=8) puu2(
kdlon,nua)
5955 REAL(KIND=8) ptt(
kdlon,ntra)
5960 REAL(KIND=8) zz, zxd, zxn
5961 REAL(KIND=8) zpu, zpu10, zpu11, zpu12, zpu13
5962 REAL(KIND=8) zeu, zeu10, zeu11, zeu12, zeu13
5963 REAL(KIND=8) zx, zy, zuxy, zsq1, zsq2, zvxy, zaercn, zto1, zto2
5964 REAL(KIND=8) zxch4, zych4, zsqh41, zodh41
5965 REAL(KIND=8) zxn2o, zyn2o, zsqn21, zodn21, zsqh42, zodh42
5966 REAL(KIND=8) zsqn22, zodn22, za11, zttf11, za12, zttf12
5967 REAL(KIND=8) zuu11, zuu12
5981 DO 120 jl = 1,
kdlon
5982 zz =sqrt(puu1(jl,ja) - puu2(jl,ja))
5983 zxd =pgb( jl,ja,1) + zz *(pgb( jl,ja,2) + zz )
5984 zxn =pga( jl,ja,1) + zz *(pga( jl,ja,2) )
5996 DO 201 jl = 1,
kdlon
5997 ptt(jl, 9) = ptt(jl, 8)
6001 zpu = 0.002 * (puu1(jl,10) - puu2(jl,10))
6006 zeu = (puu1(jl,11) - puu2(jl,11))
6014 zx = (puu1(jl,12) - puu2(jl,12))
6015 zy = (puu1(jl,13) - puu2(jl,13))
6016 zuxy = 4. * zx * zx / (rpialf0 * zy)
6017 zsq1 = sqrt(1. + o1h * zuxy ) - 1.
6018 zsq2 = sqrt(1. + o2h * zuxy ) - 1.
6019 zvxy = rpialf0 * zy / (2. * zx)
6020 zaercn = (puu1(jl,17) -puu2(jl,17)) + zeu12 + zpu12
6021 zto1 = exp( - zvxy * zsq1 - zaercn )
6022 zto2 = exp( - zvxy * zsq2 - zaercn )
6028 zxch4 = (puu1(jl,19) - puu2(jl,19))
6029 zych4 = (puu1(jl,20) - puu2(jl,20))
6030 zuxy = 4. * zxch4*zxch4/(0.103*zych4)
6031 zsqh41 = sqrt(1. + 33.7 * zuxy) - 1.
6032 zvxy = 0.103 * zych4 / (2. * zxch4)
6033 zodh41 = zvxy * zsqh41
6037 zxn2o = (puu1(jl,21) - puu2(jl,21))
6038 zyn2o = (puu1(jl,22) - puu2(jl,22))
6039 zuxy = 4. * zxn2o*zxn2o/(0.416*zyn2o)
6040 zsqn21 = sqrt(1. + 21.3 * zuxy) - 1.
6041 zvxy = 0.416 * zyn2o / (2. * zxn2o)
6042 zodn21 = zvxy * zsqn21
6046 zuxy = 4. * zxch4*zxch4/(0.113*zych4)
6047 zsqh42 = sqrt(1. + 400. * zuxy) - 1.
6048 zvxy = 0.113 * zych4 / (2. * zxch4)
6049 zodh42 = zvxy * zsqh42
6053 zuxy = 4. * zxn2o*zxn2o/(0.197*zyn2o)
6054 zsqn22 = sqrt(1. + 2000. * zuxy) - 1.
6055 zvxy = 0.197 * zyn2o / (2. * zxn2o)
6056 zodn22 = zvxy * zsqn22
6060 za11 = (puu1(jl,23) - puu2(jl,23)) * 4.404e+05
6061 zttf11 = 1. - za11 * 0.003225
6065 za12 = (puu1(jl,24) - puu2(jl,24)) * 6.7435e+05
6066 zttf12 = 1. - za12 * 0.003225
6068 zuu11 = - (puu1(jl,15) - puu2(jl,15)) - zeu10 - zpu10
6069 zuu12 = - (puu1(jl,16) - puu2(jl,16)) - zeu11 - zpu11 -
6071 ptt(jl,10) = exp( - (puu1(jl,14)- puu2(jl,14)) )
6072 ptt(jl,11) = exp( zuu11 )
6073 ptt(jl,12) = exp( zuu12 ) * zttf11 * zttf12
6074 ptt(jl,13) = 0.7554 * zto1 + 0.2446 * zto2
6075 ptt(jl,14) = ptt(jl,10) * exp( - zeu13 - zpu13 )
6076 ptt(jl,15) = exp( - (puu1(jl,14) - puu2(jl,14)) - zodh42-zodn22 )