2 SUBROUTINE sw_lmdar4(psct, prmu0, pfrac, ppmb, pdp, ppsol, palbd, palbp, &
 
    3     ptave, pwv, pqs, pozon, 
paer, pcldsw, ptau, pomega, pcg, pheat, pheat0, &
 
    4     palbpla, ptopsw, psolsw, ptopsw0, psolsw0, zfsup, zfsdn, zfsup0, zfsdn0, &
 
    5     tauae, pizae, cgae, ptaua, pomegaa, ptopswad, psolswad, ptopswai, &
 
    6     psolswai, ok_ade, ok_aie)
 
   52   REAL (KIND=8) ppsol(
kdlon) 
 
   56   REAL (KIND=8) prmu0(
kdlon) 
 
   57   REAL (KIND=8) pfrac(
kdlon) 
 
   65   REAL (KIND=8) palbd(
kdlon, 2) 
 
   66   REAL (KIND=8) palbp(
kdlon, 2) 
 
   75   REAL (KIND=8) palbpla(
kdlon) 
 
   76   REAL (KIND=8) ptopsw(
kdlon) 
 
   77   REAL (KIND=8) psolsw(
kdlon) 
 
   78   REAL (KIND=8) ptopsw0(
kdlon) 
 
   79   REAL (KIND=8) psolsw0(
kdlon) 
 
   83   REAL, 
PARAMETER :: dobson_u = 2.1415e-05 
 
   88   REAL (KIND=8) zaki(
kdlon, 2)
 
   90   REAL (KIND=8) zclear(
kdlon)
 
   92   REAL (KIND=8) zfact(
kdlon)
 
   97   REAL (KIND=8) zrmu(
kdlon)
 
   98   REAL (KIND=8) zsec(
kdlon)
 
  107   INTEGER inu, jl, jk, i, k, kpl1
 
  115   DATA appel1er/.
true./
 
  116   SAVE itapsw, appel1er
 
  120   REAL (KIND=8) flag_aer
 
  121   LOGICAL ok_ade, ok_aie 
 
  127   REAL (KIND=8) ptopswad(
kdlon) 
 
  128   REAL (KIND=8) psolswad(
kdlon) 
 
  129   REAL (KIND=8) ptopswai(
kdlon) 
 
  130   REAL (KIND=8) psolswai(
kdlon) 
 
  132   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zfsupad(:, :)
 
  134   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zfsdnad(:, :)
 
  136   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zfsupai(:, :)
 
  138   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zfsdnai(:, :)
 
  145   DATA initialized/.
false./
 
  151   IF (.NOT. initialized) 
THEN 
  166     WRITE (
lunout, *) 
'SW calling frequency : ', swpas
 
  167     WRITE (
lunout, *) 
'   In general, it should be 1' 
  171   IF (mod(itapsw,swpas)==0) 
THEN 
  173     tmp_ = 1./(dobson_u*1e3*
rg)
 
  177         zcldsw0(jl, jk) = 0.0
 
  178         zoz(jl, jk) = pozon(jl, jk)*tmp_*pdp(jl, jk)
 
  185     CALL swu_lmdar4(psct, zcldsw0, ppmb, ppsol, prmu0, pfrac, ptave, pwv, &
 
  186       zaki, zcld, zclear, zdsig, zfact, zrmu, zsec, zud)
 
  188     CALL sw1s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, palbd, palbp, &
 
  189       pcg, zcld, zclear, zcldsw0, zdsig, pomega, zoz, zrmu, zsec, ptau, zud, &
 
  192     CALL sw2s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, zaki, palbd, &
 
  193       palbp, pcg, zcld, zclear, zcldsw0, zdsig, pomega, zoz, zrmu, zsec, &
 
  194       ptau, zud, pwv, pqs, zfdown, zfup)
 
  197         zfsup0(jl, jk) = (zfup(jl,jk)+zfu(jl,jk))*zfact(jl)
 
  198         zfsdn0(jl, jk) = (zfdown(jl,jk)+zfd(jl,jk))*zfact(jl)
 
  203     CALL swu_lmdar4(psct, pcldsw, ppmb, ppsol, prmu0, pfrac, ptave, pwv, &
 
  204       zaki, zcld, zclear, zdsig, zfact, zrmu, zsec, zud)
 
  206     CALL sw1s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, palbd, palbp, &
 
  207       pcg, zcld, zclear, pcldsw, zdsig, pomega, zoz, zrmu, zsec, ptau, zud, &
 
  210     CALL sw2s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, zaki, palbd, &
 
  211       palbp, pcg, zcld, zclear, pcldsw, zdsig, pomega, zoz, zrmu, zsec, ptau, &
 
  212       zud, pwv, pqs, zfdown, zfup)
 
  218         zfsup(jl, jk) = (zfup(jl,jk)+zfu(jl,jk))*zfact(jl)
 
  219         zfsdn(jl, jk) = (zfdown(jl,jk)+zfd(jl,jk))*zfact(jl)
 
  228       CALL swu_lmdar4(psct, pcldsw, ppmb, ppsol, prmu0, pfrac, ptave, pwv, &
 
  229         zaki, zcld, zclear, zdsig, zfact, zrmu, zsec, zud)
 
  231       CALL sw1s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, palbd, palbp, &
 
  232         pcg, zcld, zclear, pcldsw, zdsig, pomega, zoz, zrmu, zsec, ptau, zud, &
 
  235       CALL sw2s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, zaki, palbd, &
 
  236         palbp, pcg, zcld, zclear, pcldsw, zdsig, pomega, zoz, zrmu, zsec, &
 
  237         ptau, zud, pwv, pqs, zfdown, zfup)
 
  240           zfsupad(jl, jk) = zfsup(jl, jk)
 
  241           zfsdnad(jl, jk) = zfsdn(jl, jk)
 
  242           zfsup(jl, jk) = (zfup(jl,jk)+zfu(jl,jk))*zfact(jl)
 
  243           zfsdn(jl, jk) = (zfdown(jl,jk)+zfd(jl,jk))*zfact(jl)
 
  253       CALL swu_lmdar4(psct, pcldsw, ppmb, ppsol, prmu0, pfrac, ptave, pwv, &
 
  254         zaki, zcld, zclear, zdsig, zfact, zrmu, zsec, zud)
 
  256       CALL sw1s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, palbd, palbp, &
 
  257         pcg, zcld, zclear, pcldsw, zdsig, pomegaa, zoz, zrmu, zsec, ptaua, &
 
  260       CALL sw2s_lmdar4(inu, paer, flag_aer, tauae, pizae, cgae, zaki, palbd, &
 
  261         palbp, pcg, zcld, zclear, pcldsw, zdsig, pomegaa, zoz, zrmu, zsec, &
 
  262         ptaua, zud, pwv, pqs, zfdown, zfup)
 
  265           zfsupai(jl, jk) = zfsup(jl, jk)
 
  266           zfsdnai(jl, jk) = zfsdn(jl, jk)
 
  267           zfsup(jl, jk) = (zfup(jl,jk)+zfu(jl,jk))*zfact(jl)
 
  268           zfsdn(jl, jk) = (zfdown(jl,jk)+zfd(jl,jk))*zfact(jl)
 
  281       pheat(i, k) = -(zfsup(i,kpl1)-zfsup(i,k)) - (zfsdn(i,k)-zfsdn(i,kpl1))
 
  282       pheat(i, k) = pheat(i, k)*rday*
rg/rcpd/pdp(i, k)
 
  283       pheat0(i, k) = -(zfsup0(i,kpl1)-zfsup0(i,k)) - &
 
  284         (zfsdn0(i,k)-zfsdn0(i,kpl1))
 
  285       pheat0(i, k) = pheat0(i, k)*rday*
rg/rcpd/pdp(i, k)
 
  289     palbpla(i) = zfsup(i, 
kflev+1)/(zfsdn(i,
kflev+1)+1.0e-20)
 
  291     psolsw(i) = zfsdn(i, 1) - zfsup(i, 1)
 
  292     ptopsw(i) = zfsdn(i, 
kflev+1) - zfsup(i, 
kflev+1)
 
  294     psolsw0(i) = zfsdn0(i, 1) - zfsup0(i, 1)
 
  295     ptopsw0(i) = zfsdn0(i, 
kflev+1) - zfsup0(i, 
kflev+1)
 
  297     psolswad(i) = zfsdnad(i, 1) - zfsupad(i, 1)
 
  298     ptopswad(i) = zfsdnad(i, 
kflev+1) - zfsupad(i, 
kflev+1)
 
  300     psolswai(i) = zfsdnai(i, 1) - zfsupai(i, 1)
 
  301     ptopswai(i) = zfsdnai(i, 
kflev+1) - zfsupai(i, 
kflev+1)
 
  310 SUBROUTINE swu_lmdar4(psct, pcldsw, ppmb, ppsol, prmu0, pfrac, ptave, pwv, &
 
  311     paki, pcld, pclear, pdsig, pfact, prmu, psec, pud)
 
  327   REAL (KIND=8) ppsol(
kdlon)
 
  328   REAL (KIND=8) prmu0(
kdlon)
 
  329   REAL (KIND=8) pfrac(
kdlon)
 
  333   REAL (KIND=8) paki(
kdlon, 2)
 
  335   REAL (KIND=8) pclear(
kdlon)
 
  337   REAL (KIND=8) pfact(
kdlon)
 
  338   REAL (KIND=8) prmu(
kdlon)
 
  339   REAL (KIND=8) psec(
kdlon)
 
  346   REAL (KIND=8) zclear(
kdlon)
 
  347   REAL (KIND=8) zcloud(
kdlon)
 
  348   REAL (KIND=8) zn175(
kdlon)
 
  349   REAL (KIND=8) zn190(
kdlon)
 
  350   REAL (KIND=8) zo175(
kdlon)
 
  351   REAL (KIND=8) zo190(
kdlon)
 
  352   REAL (KIND=8) zsign(
kdlon)
 
  353   REAL (KIND=8) zr(
kdlon, 2)
 
  354   REAL (KIND=8) zsigo(
kdlon)
 
  355   REAL (KIND=8) zud(
kdlon, 2)
 
  356   REAL (KIND=8) zrth, zrtu, zwh2o, zdsco2, zdsh2o, zfppw
 
  357   INTEGER jl, jk, jkp1, jkl, jklp1, ja
 
  373     pud(jl, 1, 
kflev+1) = 0.
 
  374     pud(jl, 2, 
kflev+1) = 0.
 
  375     pud(jl, 3, 
kflev+1) = 0.
 
  376     pud(jl, 4, 
kflev+1) = 0.
 
  377     pud(jl, 5, 
kflev+1) = 0.
 
  378     pfact(jl) = prmu0(jl)*pfrac(jl)*psct
 
  379     prmu(jl) = sqrt(1224.*prmu0(jl)*prmu0(jl)+1.)/35.
 
  380     psec(jl) = 1./prmu(jl)
 
  381     zc1j(jl, 
kflev+1) = 0.
 
  391     zo175(jl) = ppsol(jl)**(
zpdumg+1.)
 
  392     zo190(jl) = ppsol(jl)**(
zpdh2o+1.)
 
  393     zsigo(jl) = ppsol(jl)
 
  405       zwh2o = max(pwv(jl,jk), zepscq)
 
  406       zsign(jl) = 100.*ppmb(jl, jkp1)
 
  407       pdsig(jl, jk) = (zsigo(jl)-zsign(jl))/ppsol(jl)
 
  408       zn175(jl) = zsign(jl)**(
zpdumg+1.)
 
  409       zn190(jl) = zsign(jl)**(
zpdh2o+1.)
 
  410       zdsco2 = zo175(jl) - zn175(jl)
 
  411       zdsh2o = zo190(jl) - zn190(jl)
 
  416       zfppw = 1.6078*zwh2o/(1.+0.608*zwh2o)
 
  417       pud(jl, 4, jk) = pud(jl, 1, jk)*zfppw
 
  418       pud(jl, 5, jk) = pud(jl, 1, jk)*(1.-zfppw)
 
  419       zud(jl, 1) = zud(jl, 1) + pud(jl, 1, jk)
 
  420       zud(jl, 2) = zud(jl, 2) + pud(jl, 2, jk)
 
  421       zsigo(jl) = zsign(jl)
 
  422       zo175(jl) = zn175(jl)
 
  423       zo190(jl) = zn190(jl)
 
  426         zclear(jl) = zclear(jl)*(1.-max(pcldsw(jl,jkl),zcloud(jl)))/(1.-min( &
 
  427           zcloud(jl),1.-zepsec))
 
  428         zc1j(jl, jkl) = 1.0 - zclear(jl)
 
  429         zcloud(jl) = pcldsw(jl, jkl)
 
  430       ELSE IF (novlp==2) 
THEN 
  431         zcloud(jl) = max(pcldsw(jl,jkl), zcloud(jl))
 
  432         zc1j(jl, jkl) = zcloud(jl)
 
  433       ELSE IF (novlp==3) 
THEN 
  434         zclear(jl) = zclear(jl)*(1.-pcldsw(jl,jkl))
 
  435         zcloud(jl) = 1.0 - zclear(jl)
 
  436         zc1j(jl, jkl) = zcloud(jl)
 
  441     pclear(jl) = 1. - zc1j(jl, 1)
 
  445       IF (pclear(jl)<1.) 
THEN 
  446         pcld(jl, jk) = pcldsw(jl, jk)/(1.-pclear(jl))
 
  459       zud(jl, ja) = zud(jl, ja)*psec(jl)
 
  467       paki(jl, ja) = -log(zr(jl,ja))/zud(jl, ja)
 
  476 SUBROUTINE sw1s_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, palbd, palbp, &
 
  477     pcg, pcld, pclear, pcldsw, pdsig, pomega, poz, prmu, psec, ptau, pud, &
 
  483   USE chem_rep
, ONLY: rsuntime, ok_suntime
 
  522   REAL (KIND=8) flag_aer
 
  527   REAL (KIND=8) palbd(
kdlon, 2)
 
  528   REAL (KIND=8) palbp(
kdlon, 2)
 
  532   REAL (KIND=8) pclear(
kdlon)
 
  536   REAL (KIND=8) prmu(
kdlon)
 
  537   REAL (KIND=8) psec(
kdlon)
 
  549   REAL (KIND=8) zdiff(
kdlon)
 
  550   REAL (KIND=8) zdirf(
kdlon)
 
  552   REAL (KIND=8) zrayl(
kdlon)
 
  562   REAL (KIND=8) zr(
kdlon, 4)
 
  566   REAL (KIND=8) zw(
kdlon, 4)
 
  568   INTEGER jl, jk, k, jaj, ikm1, ikl
 
  575       rsun(1) = rsuntime(1)
 
  576       rsun(2) = rsuntime(2)
 
  594     zrayl(jl) = 
rray(knu, 1) + prmu(jl)*(
rray(knu,2)+prmu(jl)*(
rray(knu, &
 
  595       3)+prmu(jl)*(
rray(knu,4)+prmu(jl)*(
rray(knu,5)+prmu(jl)*
rray(knu,6)))))
 
  609   CALL swclr_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, palbp, pdsig, &
 
  610     zrayl, psec, zcgaz, zpizaz, zray1, zray2, zrefz, zrj0, zrk0, zrmu0, &
 
  611     ztauaz, ztra1, ztra2)
 
  617   CALL swr_lmdar4(knu, palbd, pcg, pcld, pdsig, pomega, zrayl, psec, ptau, &
 
  618     zcgaz, zpizaz, zray1, zray2, zrefz, zrj, zrk, zrmue, ztauaz, ztra1, &
 
  643     pfd(jl, 
kflev+1) = ((1.-pclear(jl))*zrj(jl,jaj,
kflev+1)+pclear(jl)*zrj0( &
 
  649       zw(jl, 1) = zw(jl, 1) + pud(jl, 1, ikl)/zrmue(jl, ikl)
 
  650       zw(jl, 2) = zw(jl, 2) + poz(jl, ikl)/zrmue(jl, ikl)
 
  651       zw(jl, 3) = zw(jl, 3) + pud(jl, 1, ikl)/zrmu0(jl, ikl)
 
  652       zw(jl, 4) = zw(jl, 4) + poz(jl, ikl)/zrmu0(jl, ikl)
 
  658       zdiff(jl) = zr(jl, 1)*zr(jl, 2)*zrj(jl, jaj, ikl)
 
  659       zdirf(jl) = zr(jl, 3)*zr(jl, 4)*zrj0(jl, jaj, ikl)
 
  660       pfd(jl, ikl) = ((1.-pclear(jl))*zdiff(jl)+pclear(jl)*zdirf(jl))* &
 
  670     pfu(jl, 1) = ((1.-pclear(jl))*zdiff(jl)*palbd(jl,knu)+pclear(jl)*zdirf(jl &
 
  671       )*palbp(jl,knu))*
rsun(knu)
 
  677       zw(jl, 1) = zw(jl, 1) + pud(jl, 1, ikm1)*1.66
 
  678       zw(jl, 2) = zw(jl, 2) + poz(jl, ikm1)*1.66
 
  679       zw(jl, 3) = zw(jl, 3) + pud(jl, 1, ikm1)*1.66
 
  680       zw(jl, 4) = zw(jl, 4) + poz(jl, ikm1)*1.66
 
  686       zdiff(jl) = zr(jl, 1)*zr(jl, 2)*zrk(jl, jaj, jk)
 
  687       zdirf(jl) = zr(jl, 3)*zr(jl, 4)*zrk0(jl, jaj, jk)
 
  688       pfu(jl, jk) = ((1.-pclear(jl))*zdiff(jl)+pclear(jl)*zdirf(jl))* &
 
  697 SUBROUTINE sw2s_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, paki, palbd, &
 
  698     palbp, pcg, pcld, pclear, pcldsw, pdsig, pomega, poz, prmu, psec, ptau, &
 
  699     pud, pwv, pqs, pfdown, pfup)
 
  704   USE chem_rep
, ONLY: rsuntime, ok_suntime
 
  748   REAL (KIND=8) flag_aer
 
  753   REAL (KIND=8) paki(
kdlon, 2)
 
  754   REAL (KIND=8) palbd(
kdlon, 2)
 
  755   REAL (KIND=8) palbp(
kdlon, 2)
 
  759   REAL (KIND=8) pclear(
kdlon)
 
  764   REAL (KIND=8) prmu(
kdlon)
 
  765   REAL (KIND=8) psec(
kdlon)
 
  775   INTEGER iind2(2), iind3(3)
 
  779   REAL (KIND=8) zg(
kdlon)
 
  780   REAL (KIND=8) zgg(
kdlon)
 
  782   REAL (KIND=8) zrayl(
kdlon)
 
  785   REAL (KIND=8) zref(
kdlon)
 
  787   REAL (KIND=8) zre1(
kdlon)
 
  788   REAL (KIND=8) zre2(
kdlon)
 
  793   REAL (KIND=8) zrl(
kdlon, 8)
 
  796   REAL (KIND=8) zrmuz(
kdlon)
 
  797   REAL (KIND=8) zrneb(
kdlon)
 
  798   REAL (KIND=8) zruef(
kdlon, 8)
 
  799   REAL (KIND=8) zr1(
kdlon)
 
  800   REAL (KIND=8) zr2(
kdlon, 2)
 
  801   REAL (KIND=8) zr3(
kdlon, 3)
 
  802   REAL (KIND=8) zr4(
kdlon)
 
  803   REAL (KIND=8) zr21(
kdlon)
 
  804   REAL (KIND=8) zr22(
kdlon)
 
  805   REAL (KIND=8) zs(
kdlon)
 
  807   REAL (KIND=8) zto1(
kdlon)
 
  811   REAL (KIND=8) ztr1(
kdlon)
 
  812   REAL (KIND=8) ztr2(
kdlon)
 
  813   REAL (KIND=8) zw(
kdlon)
 
  814   REAL (KIND=8) zw1(
kdlon)
 
  815   REAL (KIND=8) zw2(
kdlon, 2)
 
  816   REAL (KIND=8) zw3(
kdlon, 3)
 
  817   REAL (KIND=8) zw4(
kdlon)
 
  818   REAL (KIND=8) zw5(
kdlon)
 
  820   INTEGER jl, jk, k, jaj, ikm1, ikl, jn, jabs, jkm1
 
  821   INTEGER jref, jkl, jklp1, jajp, jkki, jkkp4, jn2j, iabs
 
  822   REAL (KIND=8) zrmum1, zwh2o, zcneb, zaa, zbb, zrki, zre11
 
  829       rsun(1) = rsuntime(1)
 
  830       rsun(2) = rsuntime(2)
 
  847     zrmum1 = 1. - prmu(jl)
 
  848     zrayl(jl) = 
rray(knu, 1) + zrmum1*(
rray(knu,2)+zrmum1*(
rray(knu, &
 
  849       3)+zrmum1*(
rray(knu,4)+zrmum1*(
rray(knu,5)+zrmum1*
rray(knu,6)))))
 
  862   CALL swclr_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, palbp, pdsig, &
 
  863     zrayl, psec, zcgaz, zpizaz, zray1, zray2, zrefz, zrj0, zrk0, zrmu0, &
 
  864     ztauaz, ztra1, ztra2)
 
  870   CALL swr_lmdar4(knu, palbd, pcg, pcld, pdsig, pomega, zrayl, psec, ptau, &
 
  871     zcgaz, zpizaz, zray1, zray2, zrefz, zrj, zrk, zrmue, ztauaz, ztra1, &
 
  888       zrefz(jl, 2, 1) = palbd(jl, knu)
 
  889       zrefz(jl, 1, 1) = palbd(jl, knu)
 
  898       ikl = 
kflev + 1 - jkm1
 
  900         zrneb(jl) = pcld(jl, jkm1)
 
  901         IF (jabs==1 .AND. zrneb(jl)>2.*zeelog) 
THEN 
  902           zwh2o = max(pwv(jl,jkm1), zeelog)
 
  903           zcneb = max(zeelog, min(zrneb(jl),1.-zeelog))
 
  904           zbb = pud(jl, jabs, jkm1)*pqs(jl, jkm1)/zwh2o
 
  905           zaa = max((pud(jl,jabs,jkm1)-zcneb*zbb)/(1.-zcneb), zeelog)
 
  907           zaa = pud(jl, jabs, jkm1)
 
  910         zrki = paki(jl, jabs)
 
  911         zs(jl) = exp(-zrki*zaa*1.66)
 
  912         zg(jl) = exp(-zrki*zaa/zrmue(jl,jk))
 
  918         zw(jl) = pomega(jl, knu, jkm1)
 
  919         zto1(jl) = ptau(jl, knu, jkm1)/zw(jl) + ztauaz(jl, jkm1)/zpizaz(jl, &
 
  922         zr21(jl) = ptau(jl, knu, jkm1) + ztauaz(jl, jkm1)
 
  923         zr22(jl) = ptau(jl, knu, jkm1)/zr21(jl)
 
  924         zgg(jl) = zr22(jl)*pcg(jl, knu, jkm1) + (1.-zr22(jl))*zcgaz(jl, jkm1)
 
  925         zw(jl) = zr21(jl)/zto1(jl)
 
  926         zref(jl) = zrefz(jl, 1, jkm1)
 
  927         zrmuz(jl) = zrmue(jl, jk)
 
  930       CALL swde_lmdar4(zgg, zref, zrmuz, zto1, zw, zre1, zre2, ztr1, ztr2)
 
  934         zrefz(jl, 2, jk) = (1.-zrneb(jl))*(zray1(jl,jkm1)+zrefz(jl,2,jkm1)* &
 
  935           ztra1(jl,jkm1)*ztra2(jl,jkm1))*zg(jl)*zs(jl) + zrneb(jl)*zre1(jl)
 
  937         ztr(jl, 2, jkm1) = zrneb(jl)*ztr1(jl) + (ztra1(jl,jkm1))*zg(jl)*(1.- &
 
  940         zrefz(jl, 1, jk) = (1.-zrneb(jl))*(zray1(jl,jkm1)+zrefz(jl,1,jkm1)* &
 
  941           ztra1(jl,jkm1)*ztra2(jl,jkm1)/(1.-zray2(jl,jkm1)*zrefz(jl,1, &
 
  942           jkm1)))*zg(jl)*zs(jl) + zrneb(jl)*zre2(jl)
 
  944         ztr(jl, 1, jkm1) = zrneb(jl)*ztr2(jl) + (ztra1(jl,jkm1)/(1.-zray2(jl, &
 
  945           jkm1)*zrefz(jl,1,jkm1)))*zg(jl)*(1.-zrneb(jl))
 
  959         zrj(jl, jn, 
kflev+1) = 1.
 
  960         zrk(jl, jn, 
kflev+1) = zrefz(jl, jref, 
kflev+1)
 
  967           zre11 = zrj(jl, jn, jklp1)*ztr(jl, jref, jkl)
 
  968           zrj(jl, jn, jkl) = zre11
 
  969           zrk(jl, jn, jkl) = zre11*zrefz(jl, jref, jkl)
 
  990         zrj(jl, jaj, jk) = zrj(jl, jaj, jk) - zrj(jl, jajp, jk)
 
  991         zrk(jl, jaj, jk) = zrk(jl, jaj, jk) - zrk(jl, jajp, jk)
 
  992         zrj(jl, jaj, jk) = max(zrj(jl,jaj,jk), zeelog)
 
  993         zrk(jl, jaj, jk) = max(zrk(jl,jaj,jk), zeelog)
 
 1001         zrj(jl, jaj, jk) = max(zrj(jl,jaj,jk), zeelog)
 
 1002         zrk(jl, jaj, jk) = max(zrk(jl,jaj,jk), zeelog)
 
 1011   DO jk = 1, 
kflev + 1
 
 1025           zw2(jl, 1) = log(zrj(jl,jn,jk)/zrj(jl,jn2j,jk))/paki(jl, jaj)
 
 1026           zw2(jl, 2) = log(zrk(jl,jn,jk)/zrk(jl,jn2j,jk))/paki(jl, jaj)
 
 1036           zrl(jl, jkki) = zr2(jl, 1)
 
 1037           zruef(jl, jkki) = zw2(jl, 1)
 
 1038           zrl(jl, jkkp4) = zr2(jl, 2)
 
 1039           zruef(jl, jkkp4) = zw2(jl, 2)
 
 1051       pfdown(jl, jk) = zrj(jl, 1, jk)*zrl(jl, 1)*zrl(jl, 3) + &
 
 1052         zrj(jl, 2, jk)*zrl(jl, 2)*zrl(jl, 4)
 
 1053       pfup(jl, jk) = zrk(jl, 1, jk)*zrl(jl, 5)*zrl(jl, 7) + &
 
 1054         zrk(jl, 2, jk)*zrl(jl, 6)*zrl(jl, 8)
 
 1084     ikl = 
kflev + 1 - jk
 
 1086       zw3(jl, 1) = zw3(jl, 1) + pud(jl, 1, ikl)/zrmu0(jl, ikl)
 
 1087       zw3(jl, 2) = zw3(jl, 2) + pud(jl, 2, ikl)/zrmu0(jl, ikl)
 
 1088       zw3(jl, 3) = zw3(jl, 3) + poz(jl, ikl)/zrmu0(jl, ikl)
 
 1089       zw4(jl) = zw4(jl) + pud(jl, 4, ikl)/zrmu0(jl, ikl)
 
 1090       zw5(jl) = zw5(jl) + pud(jl, 5, ikl)/zrmu0(jl, ikl)
 
 1097       zfd(jl, ikl) = zr3(jl, 1)*zr3(jl, 2)*zr3(jl, 3)*zr4(jl)* &
 
 1107     zfu(jl, 1) = zfd(jl, 1)*palbp(jl, knu)
 
 1110   DO jk = 2, 
kflev + 1
 
 1113       zw3(jl, 1) = zw3(jl, 1) + pud(jl, 1, ikm1)*1.66
 
 1114       zw3(jl, 2) = zw3(jl, 2) + pud(jl, 2, ikm1)*1.66
 
 1115       zw3(jl, 3) = zw3(jl, 3) + poz(jl, ikm1)*1.66
 
 1116       zw4(jl) = zw4(jl) + pud(jl, 4, ikm1)*1.66
 
 1117       zw5(jl) = zw5(jl) + pud(jl, 5, ikm1)*1.66
 
 1124       zfu(jl, jk) = zr3(jl, 1)*zr3(jl, 2)*zr3(jl, 3)*zr4(jl)* &
 
 1144     pfdown(jl, 
kflev+1) = ((1.-pclear(jl))*pfdown(jl,
kflev+1)+pclear(jl)*zfd( &
 
 1149     ikl = 
kflev + 1 - jk
 
 1151       zw1(jl) = zw1(jl) + poz(jl, ikl)/zrmue(jl, ikl)
 
 1152       zw4(jl) = zw4(jl) + pud(jl, 4, ikl)/zrmue(jl, ikl)
 
 1153       zw5(jl) = zw5(jl) + pud(jl, 5, ikl)/zrmue(jl, ikl)
 
 1160       pfdown(jl, ikl) = ((1.-pclear(jl))*zr1(jl)*zr4(jl)*pfdown(jl,ikl)+ &
 
 1161         pclear(jl)*zfd(jl,ikl))*
rsun(knu)
 
 1169     pfup(jl, 1) = ((1.-pclear(jl))*zr1(jl)*zr4(jl)*pfup(jl,1)+pclear(jl)*zfu( &
 
 1173   DO jk = 2, 
kflev + 1
 
 1176       zw1(jl) = zw1(jl) + poz(jl, ikm1)*1.66
 
 1177       zw4(jl) = zw4(jl) + pud(jl, 4, ikm1)*1.66
 
 1178       zw5(jl) = zw5(jl) + pud(jl, 5, ikm1)*1.66
 
 1185       pfup(jl, jk) = ((1.-pclear(jl))*zr1(jl)*zr4(jl)*pfup(jl,jk)+pclear(jl)* &
 
 1186         zfu(jl,jk))*
rsun(knu)
 
 1194 SUBROUTINE swclr_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, palbp, &
 
 1195     pdsig, prayl, psec, pcgaz, ppizaz, pray1, pray2, prefz, prj, prk, prmu0, &
 
 1196     ptauaz, ptra1, ptra2)
 
 1227   REAL (KIND=8) flag_aer
 
 1232   REAL (KIND=8) palbp(
kdlon, 2)
 
 1234   REAL (KIND=8) prayl(
kdlon)
 
 1235   REAL (KIND=8) psec(
kdlon)
 
 1253   REAL (KIND=8) zclear(
kdlon)
 
 1254   REAL (KIND=8) zr21(
kdlon)
 
 1255   REAL (KIND=8) zr23(
kdlon)
 
 1256   REAL (KIND=8) zss0(
kdlon)
 
 1257   REAL (KIND=8) zscat(
kdlon)
 
 1260   INTEGER jl, jk, ja, jae, jkl, jklp1, jaj, jkm1, in
 
 1261   REAL (KIND=8) ztray, zgar, zratio, zff, zfacoa, zcorae
 
 1262   REAL (KIND=8) zmue, zgap, zww, zto, zden, zmu1, zden1
 
 1263   REAL (KIND=8) zbmu0, zbmu1, zre11
 
 1272   DO jk = 1, 
kflev + 1
 
 1275         prj(jl, ja, jk) = 0.
 
 1276         prk(jl, ja, jk) = 0.
 
 1301       ptauaz(jl, jk) = flag_aer*tauae(jl, jk, knu)
 
 1302       ppizaz(jl, jk) = flag_aer*pizae(jl, jk, knu)
 
 1303       pcgaz(jl, jk) = flag_aer*cgae(jl, jk, knu)
 
 1306     IF (flag_aer>0) 
THEN 
 1311         ztray = prayl(jl)*pdsig(jl, jk)
 
 1312         zratio = ztray/(ztray+ptauaz(jl,jk))
 
 1313         zgar = pcgaz(jl, jk)
 
 1315         ptauaz(jl, jk) = ztray + ptauaz(jl, jk)*(1.-ppizaz(jl,jk)*zff)
 
 1316         pcgaz(jl, jk) = zgar*(1.-zratio)/(1.+zgar)
 
 1317         ppizaz(jl, jk) = zratio + (1.-zratio)*ppizaz(jl, jk)*(1.-zff)/(1.- &
 
 1322         ztray = prayl(jl)*pdsig(jl, jk)
 
 1323         ptauaz(jl, jk) = ztray
 
 1325         ppizaz(jl, jk) = 1. - repsct
 
 1343     zc0i(jl, 
kflev+1) = 0.
 
 1349   jkl = 
kflev + 1 - jk
 
 1352     zfacoa = 1. - ppizaz(jl, jkl)*pcgaz(jl, jkl)*pcgaz(jl, jkl)
 
 1353     zcorae = zfacoa*ptauaz(jl, jkl)*psec(jl)
 
 1354     zr21(jl) = exp(-zcorae)
 
 1355     zss0(jl) = 1. - zr21(jl)
 
 1356     zcle0(jl, jkl) = zss0(jl)
 
 1360       zclear(jl) = zclear(jl)*(1.0-max(zss0(jl),zscat(jl)))/ &
 
 1361         (1.0-min(zscat(jl),1.-zepsec))
 
 1362       zc0i(jl, jkl) = 1.0 - zclear(jl)
 
 1363       zscat(jl) = zss0(jl)
 
 1364     ELSE IF (novlp==2) 
THEN 
 1366       zscat(jl) = max(zss0(jl), zscat(jl))
 
 1367       zc0i(jl, jkl) = zscat(jl)
 
 1368     ELSE IF (novlp==3) 
THEN 
 1370       zclear(jl) = zclear(jl)*(1.0-zss0(jl))
 
 1371       zscat(jl) = 1.0 - zclear(jl)
 
 1372       zc0i(jl, jkl) = zscat(jl)
 
 1377     jkl = 
kflev + 1 - jk
 
 1380       zfacoa = 1. - ppizaz(jl, jkl)*pcgaz(jl, jkl)*pcgaz(jl, jkl)
 
 1381       zcorae = zfacoa*ptauaz(jl, jkl)*psec(jl)
 
 1382       zr21(jl) = exp(-zcorae)
 
 1383       zss0(jl) = 1. - zr21(jl)
 
 1384       zcle0(jl, jkl) = zss0(jl)
 
 1388         zclear(jl) = zclear(jl)*(1.0-max(zss0(jl),zscat(jl)))/ &
 
 1389           (1.0-min(zscat(jl),1.-zepsec))
 
 1390         zc0i(jl, jkl) = 1.0 - zclear(jl)
 
 1391         zscat(jl) = zss0(jl)
 
 1392       ELSE IF (novlp==2) 
THEN 
 1394         zscat(jl) = max(zss0(jl), zscat(jl))
 
 1395         zc0i(jl, jkl) = zscat(jl)
 
 1396       ELSE IF (novlp==3) 
THEN 
 1398         zclear(jl) = zclear(jl)*(1.0-zss0(jl))
 
 1399         zscat(jl) = 1.0 - zclear(jl)
 
 1400         zc0i(jl, jkl) = zscat(jl)
 
 1412     pray1(jl, 
kflev+1) = 0.
 
 1413     pray2(jl, 
kflev+1) = 0.
 
 1414     prefz(jl, 2, 1) = palbp(jl, knu)
 
 1415     prefz(jl, 1, 1) = palbp(jl, knu)
 
 1416     ptra1(jl, 
kflev+1) = 1.
 
 1417     ptra2(jl, 
kflev+1) = 1.
 
 1420   DO jk = 2, 
kflev + 1
 
 1430       zmue = (1.-zc0i(jl,jk))*psec(jl) + zc0i(jl, jk)*1.66
 
 1431       prmu0(jl, jk) = 1./zmue
 
 1439       zgap = pcgaz(jl, jkm1)
 
 1440       zbmu0 = 0.5 - 0.75*zgap/zmue
 
 1441       zww = ppizaz(jl, jkm1)
 
 1442       zto = ptauaz(jl, jkm1)
 
 1443       zden = 1. + (1.-zww+zbmu0*zww)*zto*zmue + (1-zww)*(1.-zww+2.*zbmu0*zww) &
 
 1445       pray1(jl, jkm1) = zbmu0*zww*zto*zmue/zden
 
 1446       ptra1(jl, jkm1) = 1./zden
 
 1449       zbmu1 = 0.5 - 0.75*zgap*zmu1
 
 1450       zden1 = 1. + (1.-zww+zbmu1*zww)*zto/zmu1 + (1-zww)*(1.-zww+2.*zbmu1*zww &
 
 1452       pray2(jl, jkm1) = zbmu1*zww*zto/zmu1/zden1
 
 1453       ptra2(jl, jkm1) = 1./zden1
 
 1457       prefz(jl, 1, jk) = (pray1(jl,jkm1)+prefz(jl,1,jkm1)*ptra1(jl,jkm1)* &
 
 1458         ptra2(jl,jkm1)/(1.-pray2(jl,jkm1)*prefz(jl,1,jkm1)))
 
 1460       ztr(jl, 1, jkm1) = (ptra1(jl,jkm1)/(1.-pray2(jl,jkm1)*prefz(jl,1, &
 
 1463       prefz(jl, 2, jk) = (pray1(jl,jkm1)+prefz(jl,2,jkm1)*ptra1(jl,jkm1)* &
 
 1466       ztr(jl, 2, jkm1) = ptra1(jl, jkm1)
 
 1471     zmue = (1.-zc0i(jl,1))*psec(jl) + zc0i(jl, 1)*1.66
 
 1472     prmu0(jl, 1) = 1./zmue
 
 1484       prj(jl, jaj, 
kflev+1) = 1.
 
 1485       prk(jl, jaj, 
kflev+1) = prefz(jl, 1, 
kflev+1)
 
 1489       jkl = 
kflev + 1 - jk
 
 1492         zre11 = prj(jl, jaj, jklp1)*ztr(jl, 1, jkl)
 
 1493         prj(jl, jaj, jkl) = zre11
 
 1494         prk(jl, jaj, jkl) = zre11*prefz(jl, 1, jkl)
 
 1502         prj(jl, jaj, 
kflev+1) = 1.
 
 1503         prk(jl, jaj, 
kflev+1) = prefz(jl, jaj, 
kflev+1)
 
 1507         jkl = 
kflev + 1 - jk
 
 1510           zre11 = prj(jl, jaj, jklp1)*ztr(jl, jaj, jkl)
 
 1511           prj(jl, jaj, jkl) = zre11
 
 1512           prk(jl, jaj, jkl) = zre11*prefz(jl, jaj, jkl)
 
 1523 SUBROUTINE swr_lmdar4(knu, palbd, pcg, pcld, pdsig, pomega, prayl, psec, &
 
 1524     ptau, pcgaz, ppizaz, pray1, pray2, prefz, prj, prk, prmue, ptauaz, ptra1, &
 
 1560   REAL (KIND=8) palbd(
kdlon, 2)
 
 1565   REAL (KIND=8) prayl(
kdlon)
 
 1566   REAL (KIND=8) psec(
kdlon)
 
 1585   REAL (KIND=8) zclear(
kdlon)
 
 1586   REAL (KIND=8) zcloud(
kdlon)
 
 1587   REAL (KIND=8) zgg(
kdlon)
 
 1588   REAL (KIND=8) zref(
kdlon)
 
 1589   REAL (KIND=8) zre1(
kdlon)
 
 1590   REAL (KIND=8) zre2(
kdlon)
 
 1591   REAL (KIND=8) zrmuz(
kdlon)
 
 1592   REAL (KIND=8) zrneb(
kdlon)
 
 1593   REAL (KIND=8) zr21(
kdlon)
 
 1594   REAL (KIND=8) zr22(
kdlon)
 
 1595   REAL (KIND=8) zr23(
kdlon)
 
 1596   REAL (KIND=8) zss1(
kdlon)
 
 1597   REAL (KIND=8) zto1(
kdlon)
 
 1599   REAL (KIND=8) ztr1(
kdlon)
 
 1600   REAL (KIND=8) ztr2(
kdlon)
 
 1601   REAL (KIND=8) zw(
kdlon)
 
 1603   INTEGER jk, jl, ja, jkl, jklp1, jkm1, jaj
 
 1604   REAL (KIND=8) zfacoa, zfacoc, zcorae, zcorcd
 
 1605   REAL (KIND=8) zmue, zgap, zww, zto, zden, zden1
 
 1606   REAL (KIND=8) zmu1, zre11, zbmu0, zbmu1
 
 1614   DO jk = 1, 
kflev + 1
 
 1617         prj(jl, ja, jk) = 0.
 
 1618         prk(jl, ja, jk) = 0.
 
 1631     zc1i(jl, 
kflev+1) = 0.
 
 1637   jkl = 
kflev + 1 - jk
 
 1640     zfacoa = 1. - ppizaz(jl, jkl)*pcgaz(jl, jkl)*pcgaz(jl, jkl)
 
 1641     zfacoc = 1. - pomega(jl, knu, jkl)*pcg(jl, knu, jkl)*pcg(jl, knu, jkl)
 
 1642     zcorae = zfacoa*ptauaz(jl, jkl)*psec(jl)
 
 1643     zcorcd = zfacoc*ptau(jl, knu, jkl)*psec(jl)
 
 1644     zr21(jl) = exp(-zcorae)
 
 1645     zr22(jl) = exp(-zcorcd)
 
 1646     zss1(jl) = pcld(jl, jkl)*(1.0-zr21(jl)*zr22(jl)) + &
 
 1647       (1.0-pcld(jl,jkl))*(1.0-zr21(jl))
 
 1648     zcleq(jl, jkl) = zss1(jl)
 
 1652       zclear(jl) = zclear(jl)*(1.0-max(zss1(jl),zcloud(jl)))/ &
 
 1653         (1.0-min(zcloud(jl),1.-zepsec))
 
 1654       zc1i(jl, jkl) = 1.0 - zclear(jl)
 
 1655       zcloud(jl) = zss1(jl)
 
 1656     ELSE IF (novlp==2) 
THEN 
 1658       zcloud(jl) = max(zss1(jl), zcloud(jl))
 
 1659       zc1i(jl, jkl) = zcloud(jl)
 
 1660     ELSE IF (novlp==3) 
THEN 
 1662       zclear(jl) = zclear(jl)*(1.0-zss1(jl))
 
 1663       zcloud(jl) = 1.0 - zclear(jl)
 
 1664       zc1i(jl, jkl) = zcloud(jl)
 
 1669     jkl = 
kflev + 1 - jk
 
 1672       zfacoa = 1. - ppizaz(jl, jkl)*pcgaz(jl, jkl)*pcgaz(jl, jkl)
 
 1673       zfacoc = 1. - pomega(jl, knu, jkl)*pcg(jl, knu, jkl)*pcg(jl, knu, jkl)
 
 1674       zcorae = zfacoa*ptauaz(jl, jkl)*psec(jl)
 
 1675       zcorcd = zfacoc*ptau(jl, knu, jkl)*psec(jl)
 
 1676       zr21(jl) = exp(-zcorae)
 
 1677       zr22(jl) = exp(-zcorcd)
 
 1678       zss1(jl) = pcld(jl, jkl)*(1.0-zr21(jl)*zr22(jl)) + &
 
 1679         (1.0-pcld(jl,jkl))*(1.0-zr21(jl))
 
 1680       zcleq(jl, jkl) = zss1(jl)
 
 1684         zclear(jl) = zclear(jl)*(1.0-max(zss1(jl),zcloud(jl)))/ &
 
 1685           (1.0-min(zcloud(jl),1.-zepsec))
 
 1686         zc1i(jl, jkl) = 1.0 - zclear(jl)
 
 1687         zcloud(jl) = zss1(jl)
 
 1688       ELSE IF (novlp==2) 
THEN 
 1690         zcloud(jl) = max(zss1(jl), zcloud(jl))
 
 1691         zc1i(jl, jkl) = zcloud(jl)
 
 1692       ELSE IF (novlp==3) 
THEN 
 1694         zclear(jl) = zclear(jl)*(1.0-zss1(jl))
 
 1695         zcloud(jl) = 1.0 - zclear(jl)
 
 1696         zc1i(jl, jkl) = zcloud(jl)
 
 1708     pray1(jl, 
kflev+1) = 0.
 
 1709     pray2(jl, 
kflev+1) = 0.
 
 1710     prefz(jl, 2, 1) = palbd(jl, knu)
 
 1711     prefz(jl, 1, 1) = palbd(jl, knu)
 
 1712     ptra1(jl, 
kflev+1) = 1.
 
 1713     ptra2(jl, 
kflev+1) = 1.
 
 1716   DO jk = 2, 
kflev + 1
 
 1719       zrneb(jl) = pcld(jl, jkm1)
 
 1731       zmue = (1.-zc1i(jl,jk))*psec(jl) + zc1i(jl, jk)*1.66
 
 1732       prmue(jl, jk) = 1./zmue
 
 1740       zgap = pcgaz(jl, jkm1)
 
 1741       zbmu0 = 0.5 - 0.75*zgap/zmue
 
 1742       zww = ppizaz(jl, jkm1)
 
 1743       zto = ptauaz(jl, jkm1)
 
 1744       zden = 1. + (1.-zww+zbmu0*zww)*zto*zmue + (1-zww)*(1.-zww+2.*zbmu0*zww) &
 
 1746       pray1(jl, jkm1) = zbmu0*zww*zto*zmue/zden
 
 1747       ptra1(jl, jkm1) = 1./zden
 
 1751       zbmu1 = 0.5 - 0.75*zgap*zmu1
 
 1752       zden1 = 1. + (1.-zww+zbmu1*zww)*zto/zmu1 + (1-zww)*(1.-zww+2.*zbmu1*zww &
 
 1754       pray2(jl, jkm1) = zbmu1*zww*zto/zmu1/zden1
 
 1755       ptra2(jl, jkm1) = 1./zden1
 
 1763       zw(jl) = pomega(jl, knu, jkm1)
 
 1764       zto1(jl) = ptau(jl, knu, jkm1)/zw(jl) + ptauaz(jl, jkm1)/ppizaz(jl, &
 
 1766       zr21(jl) = ptau(jl, knu, jkm1) + ptauaz(jl, jkm1)
 
 1767       zr22(jl) = ptau(jl, knu, jkm1)/zr21(jl)
 
 1768       zgg(jl) = zr22(jl)*pcg(jl, knu, jkm1) + (1.-zr22(jl))*pcgaz(jl, jkm1)
 
 1772       IF (zw(jl)==1. .AND. ppizaz(jl,jkm1)==1.) 
THEN 
 1775         zw(jl) = zr21(jl)/zto1(jl)
 
 1777       zref(jl) = prefz(jl, 1, jkm1)
 
 1778       zrmuz(jl) = prmue(jl, jk)
 
 1781     CALL swde_lmdar4(zgg, zref, zrmuz, zto1, zw, zre1, zre2, ztr1, ztr2)
 
 1785       prefz(jl, 1, jk) = (1.-zrneb(jl))*(pray1(jl,jkm1)+prefz(jl,1,jkm1)* &
 
 1786         ptra1(jl,jkm1)*ptra2(jl,jkm1)/(1.-pray2(jl,jkm1)*prefz(jl,1, &
 
 1787         jkm1))) + zrneb(jl)*zre2(jl)
 
 1789       ztr(jl, 1, jkm1) = zrneb(jl)*ztr2(jl) + (ptra1(jl,jkm1)/(1.-pray2(jl, &
 
 1790         jkm1)*prefz(jl,1,jkm1)))*(1.-zrneb(jl))
 
 1792       prefz(jl, 2, jk) = (1.-zrneb(jl))*(pray1(jl,jkm1)+prefz(jl,2,jkm1)* &
 
 1793         ptra1(jl,jkm1)*ptra2(jl,jkm1)) + zrneb(jl)*zre1(jl)
 
 1795       ztr(jl, 2, jkm1) = zrneb(jl)*ztr1(jl) + ptra1(jl, jkm1)*(1.-zrneb(jl))
 
 1800     zmue = (1.-zc1i(jl,1))*psec(jl) + zc1i(jl, 1)*1.66
 
 1801     prmue(jl, 1) = 1./zmue
 
 1813       prj(jl, jaj, 
kflev+1) = 1.
 
 1814       prk(jl, jaj, 
kflev+1) = prefz(jl, 1, 
kflev+1)
 
 1818       jkl = 
kflev + 1 - jk
 
 1821         zre11 = prj(jl, jaj, jklp1)*ztr(jl, 1, jkl)
 
 1822         prj(jl, jaj, jkl) = zre11
 
 1823         prk(jl, jaj, jkl) = zre11*prefz(jl, 1, jkl)
 
 1831         prj(jl, jaj, 
kflev+1) = 1.
 
 1832         prk(jl, jaj, 
kflev+1) = prefz(jl, jaj, 
kflev+1)
 
 1836         jkl = 
kflev + 1 - jk
 
 1839           zre11 = prj(jl, jaj, jklp1)*ztr(jl, jaj, jkl)
 
 1840           prj(jl, jaj, jkl) = zre11
 
 1841           prk(jl, jaj, jkl) = zre11*prefz(jl, jaj, jkl)
 
 1852 SUBROUTINE swde_lmdar4(pgg, pref, prmuz, pto1, pw, pre1, pre2, ptr1, ptr2)
 
 1883   REAL (KIND=8) pgg(
kdlon) 
 
 1884   REAL (KIND=8) pref(
kdlon) 
 
 1885   REAL (KIND=8) prmuz(
kdlon) 
 
 1886   REAL (KIND=8) pto1(
kdlon) 
 
 1887   REAL (KIND=8) pw(
kdlon) 
 
 1888   REAL (KIND=8) pre1(
kdlon) 
 
 1889   REAL (KIND=8) pre2(
kdlon) 
 
 1890   REAL (KIND=8) ptr1(
kdlon) 
 
 1891   REAL (KIND=8) ptr2(
kdlon) 
 
 1896   REAL (KIND=8) zff, zgp, ztop, zwcp, zdt, zx1, zwm
 
 1897   REAL (KIND=8) zrm2, zrk, zx2, zrp, zalpha, zbeta, zarg
 
 1898   REAL (KIND=8) zexmu0, zarg2, zexkp, zexkm, zxp2p, zxm2p, zap2b, zam2b
 
 1899   REAL (KIND=8) za11, za12, za13, za21, za22, za23
 
 1900   REAL (KIND=8) zdena, zc1a, zc2a, zri0a, zri1a
 
 1901   REAL (KIND=8) zri0b, zri1b
 
 1902   REAL (KIND=8) zb21, zb22, zb23, zdenb, zc1b, zc2b
 
 1903   REAL (KIND=8) zri0c, zri1c, zri0d, zri1d
 
 1914     zff = pgg(jl)*pgg(jl)
 
 1915     zgp = pgg(jl)/(1.+pgg(jl))
 
 1916     ztop = (1.-pw(jl)*zff)*pto1(jl)
 
 1917     zwcp = (1-zff)*pw(jl)/(1.-pw(jl)*zff)
 
 1921     zrm2 = prmuz(jl)*prmuz(jl)
 
 1922     zrk = sqrt(3.*zwm*zx1)
 
 1923     zx2 = 4.*(1.-zrk*zrk*zrm2)
 
 1925     zalpha = 3.*zwcp*zrm2*(1.+zgp*zwm)/zx2
 
 1926     zbeta = 3.*zwcp*prmuz(jl)*(1.+3.*zgp*zrm2*zwm)/zx2
 
 1927     zarg = min(ztop/prmuz(jl), 200._8)
 
 1929     zarg2 = min(zrk*ztop, 200._8)
 
 1932     zxp2p = 1. + zdt*zrp
 
 1933     zxm2p = 1. - zdt*zrp
 
 1934     zap2b = zalpha + zdt*zbeta
 
 1935     zam2b = zalpha - zdt*zbeta
 
 1946     zdena = za11*za22 - za21*za12
 
 1947     zc1a = (za22*za13-za12*za23)/zdena
 
 1948     zc2a = (za11*za23-za21*za13)/zdena
 
 1949     zri0a = zc1a + zc2a - zalpha
 
 1950     zri1a = zrp*(zc1a-zc2a) - zbeta
 
 1951     pre1(jl) = (zri0a-zdt*zri1a)/prmuz(jl)
 
 1952     zri0b = zc1a*zexkm + zc2a*zexkp - zalpha*zexmu0
 
 1953     zri1b = zrp*(zc1a*zexkm-zc2a*zexkp) - zbeta*zexmu0
 
 1954     ptr1(jl) = zexmu0 + (zri0b+zdt*zri1b)/prmuz(jl)
 
 1959     zb21 = za21 - pref(jl)*zxp2p*zexkm
 
 1960     zb22 = za22 - pref(jl)*zxm2p*zexkp
 
 1961     zb23 = za23 - pref(jl)*zexmu0*(zap2b-prmuz(jl))
 
 1962     zdenb = za11*zb22 - zb21*za12
 
 1963     zc1b = (zb22*za13-za12*zb23)/zdenb
 
 1964     zc2b = (za11*zb23-zb21*za13)/zdenb
 
 1965     zri0c = zc1b + zc2b - zalpha
 
 1966     zri1c = zrp*(zc1b-zc2b) - zbeta
 
 1967     pre2(jl) = (zri0c-zdt*zri1c)/prmuz(jl)
 
 1968     zri0d = zc1b*zexkm + zc2b*zexkp - zalpha*zexmu0
 
 1969     zri1d = zrp*(zc1b*zexkm-zc2b*zexkp) - zbeta*zexmu0
 
 1970     ptr2(jl) = zexmu0 + (zri0d+zdt*zri1d)/prmuz(jl)
 
 2012   REAL (KIND=8) pu(
kdlon) 
 
 2014   REAL (KIND=8) ptr(
kdlon) 
 
 2027     zr1(jl) = 
apad(knu, ka, 1) + pu(jl)*(
apad(knu,ka,2)+pu(jl)*(
apad(knu,ka, &
 
 2028       3)+pu(jl)*(
apad(knu,ka,4)+pu(jl)*(
apad(knu,ka,5)+pu(jl)*(
apad(knu,ka,6) &
 
 2029       +pu(jl)*(
apad(knu,ka,7)))))))
 
 2031     zr2(jl) = 
bpad(knu, ka, 1) + pu(jl)*(
bpad(knu,ka,2)+pu(jl)*(
bpad(knu,ka, &
 
 2032       3)+pu(jl)*(
bpad(knu,ka,4)+pu(jl)*(
bpad(knu,ka,5)+pu(jl)*(
bpad(knu,ka,6) &
 
 2033       +pu(jl)*(
bpad(knu,ka,7)))))))
 
 2039     ptr(jl) = (zr1(jl)/zr2(jl))*(1.-
d(knu,ka)) + 
d(knu, ka)
 
 2081   REAL (KIND=8) pu(
kdlon, kabs) 
 
 2083   REAL (KIND=8) ptr(
kdlon, kabs) 
 
 2087   REAL (KIND=8) zr1(
kdlon)
 
 2088   REAL (KIND=8) zr2(
kdlon)
 
 2089   REAL (KIND=8) zu(
kdlon)
 
 2090   INTEGER jl, ja, i, j, ia
 
 2101       zr1(jl) = 
apad(knu, ia, 1) + zu(jl)*(
apad(knu,ia,2)+zu(jl)*(
apad(knu, &
 
 2102         ia,3)+zu(jl)*(
apad(knu,ia,4)+zu(jl)*(
apad(knu,ia,5)+zu(jl)*(
apad(knu, &
 
 2103         ia,6)+zu(jl)*(
apad(knu,ia,7)))))))
 
 2105       zr2(jl) = 
bpad(knu, ia, 1) + zu(jl)*(
bpad(knu,ia,2)+zu(jl)*(
bpad(knu, &
 
 2106         ia,3)+zu(jl)*(
bpad(knu,ia,4)+zu(jl)*(
bpad(knu,ia,5)+zu(jl)*(
bpad(knu, &
 
 2107         ia,6)+zu(jl)*(
bpad(knu,ia,7)))))))
 
 2112       ptr(jl, ja) = (zr1(jl)/zr2(jl))*(1.-
d(knu,ia)) + 
d(knu, ia)
 
 2119 SUBROUTINE lw_lmdar4(ppmb, pdp, ppsol, pdt0, pemis, ptl, ptave, pwv, pozon, &
 
 2120     paer, pcldld, pcldlu, pview, pcolr, pcolr0, ptoplw, psollw, ptoplw0, &
 
 2121     psollw0, psollwdown, &         
 
 2124     plwup, plwdn, plwup0, plwdn0)
 
 2128   include 
"raddimlw.h" 
 2168   include 
"clesphys.h" 
 2172   REAL (KIND=8) pdt0(
kdlon) 
 
 2173   REAL (KIND=8) pemis(
kdlon) 
 
 2175   REAL (KIND=8) ppsol(
kdlon) 
 
 2180   REAL (KIND=8) pview(
kdlon) 
 
 2185   REAL (KIND=8) ptoplw(
kdlon) 
 
 2186   REAL (KIND=8) psollw(
kdlon) 
 
 2187   REAL (KIND=8) ptoplw0(
kdlon) 
 
 2188   REAL (KIND=8) psollw0(
kdlon) 
 
 2190   REAL (KIND=8) psollwdown(
kdlon) 
 
 2221   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zflux(:, :, :) 
 
 2222   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zfluc(:, :, :) 
 
 2223   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zbint(:, :) 
 
 2224   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zbsui(:) 
 
 2225   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zcts(:, :) 
 
 2226   REAL (KIND=8), 
ALLOCATABLE, 
SAVE :: zcntrb(:, :, :) 
 
 2229   INTEGER ilim, i, k, kpl1
 
 2236   INTEGER itaplw0, itaplw
 
 2238   SAVE appel1er, itaplw0, itaplw
 
 2240   DATA appel1er/.
true./
 
 2241   DATA itaplw0, itaplw/0, 0/
 
 2245     WRITE (
lunout, *) 
'LW clear-sky calling frequency: ', lw0pas
 
 2246     WRITE (
lunout, *) 
'LW cloudy-sky calling frequency: ', lwpas
 
 2247     WRITE (
lunout, *) 
'   In general, they should be 1' 
 2252     ALLOCATE (zbsui(
kdlon))
 
 2258   IF (mod(itaplw0,lw0pas)==0) 
THEN 
 2262         zoz(i, k) = pozon(i, k)*pdp(i, k)
 
 2266     CALL lwu_lmdar4(paer, pdp, ppmb, ppsol, zoz, ptave, pview, pwv, zabcu)
 
 2267     CALL lwbv_lmdar4(ilim, pdp, pdt0, pemis, ppmb, ptl, ptave, zabcu, zfluc, &
 
 2268       zbint, zbsui, zcts, zcntrb)
 
 2271   itaplw0 = itaplw0 + 1
 
 2273   IF (mod(itaplw,lwpas)==0) 
THEN 
 2274     CALL lwc_lmdar4(ilim, pcldld, pcldlu, pemis, zfluc, zbint, zbsui, zcts, &
 
 2283       pcolr(i, k) = zflux(i, 1, kpl1) + zflux(i, 2, kpl1) - zflux(i, 1, k) - &
 
 2285       pcolr(i, k) = pcolr(i, k)*rday*
rg/rcpd/pdp(i, k)
 
 2286       pcolr0(i, k) = zfluc(i, 1, kpl1) + zfluc(i, 2, kpl1) - zfluc(i, 1, k) - &
 
 2288       pcolr0(i, k) = pcolr0(i, k)*rday*
rg/rcpd/pdp(i, k)
 
 2292     psollw(i) = -zflux(i, 1, 1) - zflux(i, 2, 1)
 
 2293     ptoplw(i) = zflux(i, 1, 
kflev+1) + zflux(i, 2, 
kflev+1)
 
 2295     psollw0(i) = -zfluc(i, 1, 1) - zfluc(i, 2, 1)
 
 2296     ptoplw0(i) = zfluc(i, 1, 
kflev+1) + zfluc(i, 2, 
kflev+1)
 
 2297     psollwdown(i) = -zflux(i, 2, 1)
 
 2301       plwup(i, k) = zflux(i, 1, k)
 
 2302       plwup0(i, k) = zfluc(i, 1, k)
 
 2303       plwdn(i, k) = zflux(i, 2, k)
 
 2304       plwdn0(i, k) = zfluc(i, 2, k)
 
 2311 SUBROUTINE lwu_lmdar4(paer, pdp, ppmb, ppsol, poz, ptave, pview, pwv, pabcu)
 
 2316   USE chem_rep
, ONLY: rch42d, rn2o2d, rcfc112d, rcfc122d, ok_rtime2d
 
 2320   include 
"raddimlw.h" 
 2356   include 
"clesphys.h" 
 2360   REAL (KIND=8) ppsol(
kdlon)
 
 2363   REAL (KIND=8) pview(
kdlon)
 
 2372   REAL (KIND=8) zphio(
kdlon)
 
 2373   REAL (KIND=8) zpsc2(
kdlon)
 
 2374   REAL (KIND=8) zpsc3(
kdlon)
 
 2375   REAL (KIND=8) zpsh1(
kdlon)
 
 2376   REAL (KIND=8) zpsh2(
kdlon)
 
 2377   REAL (KIND=8) zpsh3(
kdlon)
 
 2378   REAL (KIND=8) zpsh4(
kdlon)
 
 2379   REAL (KIND=8) zpsh5(
kdlon)
 
 2380   REAL (KIND=8) zpsh6(
kdlon)
 
 2381   REAL (KIND=8) zpsio(
kdlon)
 
 2382   REAL (KIND=8) ztcon(
kdlon)
 
 2383   REAL (KIND=8) zphm6(
kdlon)
 
 2384   REAL (KIND=8) zpsm6(
kdlon)
 
 2385   REAL (KIND=8) zphn6(
kdlon)
 
 2386   REAL (KIND=8) zpsn6(
kdlon)
 
 2388   REAL (KIND=8) ztavi(
kdlon)
 
 2389   REAL (KIND=8) zuaer(
kdlon, ninter)
 
 2390   REAL (KIND=8) zxoz(
kdlon)
 
 2391   REAL (KIND=8) zxwv(
kdlon)
 
 2393   INTEGER jl, jk, jkj, jkjr, jkjp, ig1
 
 2394   INTEGER jki, jkip1, ja, jj
 
 2395   INTEGER jkl, jkp1, jkk, jkjpn
 
 2396   INTEGER jae1, jae2, jae3, jae, jjpn
 
 2397   INTEGER ir, jc, jcp1
 
 2398   REAL (KIND=8) zdpm, zupm, zupmh2o, zupmco2, zupmo3, zu6, zup
 
 2399   REAL (KIND=8) zfppw, ztx, ztx2, zzably
 
 2400   REAL (KIND=8) zcah1, zcbh1, zcah2, zcbh2, zcah3, zcbh3
 
 2401   REAL (KIND=8) zcah4, zcbh4, zcah5, zcbh5, zcah6, zcbh6
 
 2402   REAL (KIND=8) zcac8, zcbc8
 
 2403   REAL (KIND=8) zalup, zdiff
 
 2405   REAL (KIND=8) pvgco2, pvgh2o, pvgo3
 
 2427     zssig(jl, 1) = ppmb(jl, 1)*100.
 
 2431     jkj = (jk-1)*ng1p1 + 1
 
 2435       zssig(jl, jkjp) = ppmb(jl, jk+1)*100.
 
 2440         zssig(jl, jkj) = (zssig(jl,jkjr)+zssig(jl,jkjp))*0.5 + &
 
 2441           rt1(ig1)*(zssig(jl,jkjp)-zssig(jl,jkjr))*0.5
 
 2456       zably(jl, 5, jki) = (zssig(jl,jki)+zssig(jl,jkip1))*0.5
 
 2457       zably(jl, 3, jki) = (zssig(jl,jki)-zssig(jl,jkip1))/(10.*
rg)
 
 2463     jkl = 
kflev + 1 - jk
 
 2465       zxwv(jl) = max(pwv(jl,jk), zepscq)
 
 2466       zxoz(jl) = max(poz(jl,jk)/pdp(jl,jk), zepsco)
 
 2468     jkj = (jk-1)*ng1p1 + 1
 
 2472         zdpm = zably(jl, 3, jkk)
 
 2473         zupm = zably(jl, 5, jkk)*zdpm/101325.
 
 2474         zupmco2 = (zably(jl,5,jkk)+pvgco2)*zdpm/101325.
 
 2475         zupmh2o = (zably(jl,5,jkk)+pvgh2o)*zdpm/101325.
 
 2476         zupmo3 = (zably(jl,5,jkk)+pvgo3)*zdpm/101325.
 
 2477         zduc(jl, jkk) = zdpm
 
 2478         zably(jl, 12, jkk) = zxoz(jl)*zdpm
 
 2479         zably(jl, 13, jkk) = zxoz(jl)*zupmo3
 
 2481         zfppw = 1.6078*zxwv(jl)/(1.+0.608*zxwv(jl))
 
 2482         zably(jl, 6, jkk) = zxwv(jl)*zupmh2o
 
 2483         zably(jl, 11, jkk) = zu6*zfppw
 
 2484         zably(jl, 10, jkk) = zu6*(1.-zfppw)
 
 2485         zably(jl, 9, jkk) = rco2*zupmco2
 
 2486         zably(jl, 8, jkk) = rco2*zdpm
 
 2500       pabcu(jl, ja, 3*
kflev+1) = 0.
 
 2505     jj = (jk-1)*ng1p1 + 1
 
 2507     jkl = 
kflev + 1 - jk
 
 2513     jae1 = 3*
kflev + 1 - jj
 
 2514     jae2 = 3*
kflev + 1 - (jj+1)
 
 2515     jae3 = 3*
kflev + 1 - jjpn
 
 2518         zuaer(jl, jae) = (
raer(jae,1)*paer(jl,jkl,1)+
raer(jae,2)*paer(jl,jkl, &
 
 2519           2)+
raer(jae,3)*paer(jl,jkl,3)+
raer(jae,4)*paer(jl,jkl,4)+ &
 
 2520           raer(jae,5)*paer(jl,jkl,5))/(zduc(jl,jae1)+zduc(jl,jae2)+zduc(jl, &
 
 2530       ztavi(jl) = ptave(jl, jkl)
 
 2531       ztcon(jl) = exp(6.08*(296./ztavi(jl)-1.))
 
 2532       ztx = ztavi(jl) - 
tref 
 2534       zzably = zably(jl, 6, jae1) + zably(jl, 6, jae2) + zably(jl, 6, jae3)
 
 2535       zup = min(max(0.5*r10e*log(zzably)+5.,0._8), 6._8)
 
 2536       zcah1 = at(1, 1) + zup*(at(1,2)+zup*(at(1,3)))
 
 2537       zcbh1 = 
bt(1, 1) + zup*(
bt(1,2)+zup*(
bt(1,3)))
 
 2538       zpsh1(jl) = exp(zcah1*ztx+zcbh1*ztx2)
 
 2539       zcah2 = at(2, 1) + zup*(at(2,2)+zup*(at(2,3)))
 
 2540       zcbh2 = 
bt(2, 1) + zup*(
bt(2,2)+zup*(
bt(2,3)))
 
 2541       zpsh2(jl) = exp(zcah2*ztx+zcbh2*ztx2)
 
 2542       zcah3 = at(3, 1) + zup*(at(3,2)+zup*(at(3,3)))
 
 2543       zcbh3 = 
bt(3, 1) + zup*(
bt(3,2)+zup*(
bt(3,3)))
 
 2544       zpsh3(jl) = exp(zcah3*ztx+zcbh3*ztx2)
 
 2545       zcah4 = at(4, 1) + zup*(at(4,2)+zup*(at(4,3)))
 
 2546       zcbh4 = 
bt(4, 1) + zup*(
bt(4,2)+zup*(
bt(4,3)))
 
 2547       zpsh4(jl) = exp(zcah4*ztx+zcbh4*ztx2)
 
 2548       zcah5 = at(5, 1) + zup*(at(5,2)+zup*(at(5,3)))
 
 2549       zcbh5 = 
bt(5, 1) + zup*(
bt(5,2)+zup*(
bt(5,3)))
 
 2550       zpsh5(jl) = exp(zcah5*ztx+zcbh5*ztx2)
 
 2551       zcah6 = at(6, 1) + zup*(at(6,2)+zup*(at(6,3)))
 
 2552       zcbh6 = 
bt(6, 1) + zup*(
bt(6,2)+zup*(
bt(6,3)))
 
 2553       zpsh6(jl) = exp(zcah6*ztx+zcbh6*ztx2)
 
 2554       zphm6(jl) = exp(-5.81e-4*ztx-1.13e-6*ztx2)
 
 2555       zpsm6(jl) = exp(-5.57e-4*ztx-3.30e-6*ztx2)
 
 2556       zphn6(jl) = exp(-3.46e-5*ztx+2.05e-7*ztx2)
 
 2557       zpsn6(jl) = exp(3.70e-3*ztx-2.30e-6*ztx2)
 
 2561       ztavi(jl) = ptave(jl, jkl)
 
 2562       ztx = ztavi(jl) - 
tref 
 2564       zzably = zably(jl, 9, jae1) + zably(jl, 9, jae2) + zably(jl, 9, jae3)
 
 2565       zalup = r10e*log(zzably)
 
 2566       zup = max(0._8, 5.0+0.5*zalup)
 
 2567       zpsc2(jl) = (ztavi(jl)/
tref)**zup
 
 2568       zcac8 = at(8, 1) + zup*(at(8,2)+zup*(at(8,3)))
 
 2569       zcbc8 = 
bt(8, 1) + zup*(
bt(8,2)+zup*(
bt(8,3)))
 
 2570       zpsc3(jl) = exp(zcac8*ztx+zcbc8*ztx2)
 
 2571       zphio(jl) = exp(
oct(1)*ztx+
oct(2)*ztx2)
 
 2572       zpsio(jl) = exp(2.*(
oct(3)*ztx+
oct(4)*ztx2))
 
 2576       jc = 3*
kflev + 1 - jkk
 
 2580         pabcu(jl, 10, jc) = pabcu(jl, 10, jcp1) + zably(jl, 10, jc)*zdiff
 
 2581         pabcu(jl, 11, jc) = pabcu(jl, 11, jcp1) + zably(jl, 11, jc)*ztcon(jl) &
 
 2584         pabcu(jl, 12, jc) = pabcu(jl, 12, jcp1) + zably(jl, 12, jc)*zphio(jl) &
 
 2586         pabcu(jl, 13, jc) = pabcu(jl, 13, jcp1) + zably(jl, 13, jc)*zpsio(jl) &
 
 2589         pabcu(jl, 7, jc) = pabcu(jl, 7, jcp1) + zably(jl, 9, jc)*zpsc2(jl)* &
 
 2591         pabcu(jl, 8, jc) = pabcu(jl, 8, jcp1) + zably(jl, 9, jc)*zpsc3(jl)* &
 
 2593         pabcu(jl, 9, jc) = pabcu(jl, 9, jcp1) + zably(jl, 9, jc)*zpsc3(jl)* &
 
 2596         pabcu(jl, 1, jc) = pabcu(jl, 1, jcp1) + zably(jl, 6, jc)*zpsh1(jl)* &
 
 2598         pabcu(jl, 2, jc) = pabcu(jl, 2, jcp1) + zably(jl, 6, jc)*zpsh2(jl)* &
 
 2600         pabcu(jl, 3, jc) = pabcu(jl, 3, jcp1) + zably(jl, 6, jc)*zpsh5(jl)* &
 
 2602         pabcu(jl, 4, jc) = pabcu(jl, 4, jcp1) + zably(jl, 6, jc)*zpsh3(jl)* &
 
 2604         pabcu(jl, 5, jc) = pabcu(jl, 5, jcp1) + zably(jl, 6, jc)*zpsh4(jl)* &
 
 2606         pabcu(jl, 6, jc) = pabcu(jl, 6, jcp1) + zably(jl, 6, jc)*zpsh6(jl)* &
 
 2609         pabcu(jl, 14, jc) = pabcu(jl, 14, jcp1) + zuaer(jl, 1)*zduc(jl, jc)* &
 
 2611         pabcu(jl, 15, jc) = pabcu(jl, 15, jcp1) + zuaer(jl, 2)*zduc(jl, jc)* &
 
 2613         pabcu(jl, 16, jc) = pabcu(jl, 16, jcp1) + zuaer(jl, 3)*zduc(jl, jc)* &
 
 2615         pabcu(jl, 17, jc) = pabcu(jl, 17, jcp1) + zuaer(jl, 4)*zduc(jl, jc)* &
 
 2617         pabcu(jl, 18, jc) = pabcu(jl, 18, jcp1) + zuaer(jl, 5)*zduc(jl, jc)* &
 
 2624           IF (ok_rtime2d) 
THEN 
 2625             pabcu(jl, 19, jc) = pabcu(jl, 19, jcp1) + &
 
 2626               zably(jl, 8, jc)*rch42d(jl, jc)/rco2*zphm6(jl)*zdiff
 
 2627             pabcu(jl, 20, jc) = pabcu(jl, 20, jcp1) + &
 
 2628               zably(jl, 9, jc)*rch42d(jl, jc)/rco2*zpsm6(jl)*zdiff
 
 2629             pabcu(jl, 21, jc) = pabcu(jl, 21, jcp1) + &
 
 2630               zably(jl, 8, jc)*rn2o2d(jl, jc)/rco2*zphn6(jl)*zdiff
 
 2631             pabcu(jl, 22, jc) = pabcu(jl, 22, jcp1) + &
 
 2632               zably(jl, 9, jc)*rn2o2d(jl, jc)/rco2*zpsn6(jl)*zdiff
 
 2634             pabcu(jl, 23, jc) = pabcu(jl, 23, jcp1) + &
 
 2635               zably(jl, 8, jc)*rcfc112d(jl, jc)/rco2*zdiff
 
 2636             pabcu(jl, 24, jc) = pabcu(jl, 24, jcp1) + &
 
 2637               zably(jl, 8, jc)*rcfc122d(jl, jc)/rco2*zdiff
 
 2640             pabcu(jl, 19, jc) = pabcu(jl, 19, jcp1) + &
 
 2641               zably(jl, 8, jc)*rch4/rco2*zphm6(jl)*zdiff
 
 2642             pabcu(jl, 20, jc) = pabcu(jl, 20, jcp1) + &
 
 2643               zably(jl, 9, jc)*rch4/rco2*zpsm6(jl)*zdiff
 
 2644             pabcu(jl, 21, jc) = pabcu(jl, 21, jcp1) + &
 
 2645               zably(jl, 8, jc)*rn2o/rco2*zphn6(jl)*zdiff
 
 2646             pabcu(jl, 22, jc) = pabcu(jl, 22, jcp1) + &
 
 2647               zably(jl, 9, jc)*rn2o/rco2*zpsn6(jl)*zdiff
 
 2649             pabcu(jl, 23, jc) = pabcu(jl, 23, jcp1) + &
 
 2650               zably(jl, 8, jc)*rcfc11/rco2*zdiff
 
 2651             pabcu(jl, 24, jc) = pabcu(jl, 24, jcp1) + &
 
 2652               zably(jl, 8, jc)*rcfc12/rco2*zdiff
 
 2656           pabcu(jl, 19, jc) = pabcu(jl, 19, jcp1) + &
 
 2657             zably(jl, 8, jc)*rch4/rco2*zphm6(jl)*zdiff
 
 2658           pabcu(jl, 20, jc) = pabcu(jl, 20, jcp1) + &
 
 2659             zably(jl, 9, jc)*rch4/rco2*zpsm6(jl)*zdiff
 
 2660           pabcu(jl, 21, jc) = pabcu(jl, 21, jcp1) + &
 
 2661             zably(jl, 8, jc)*rn2o/rco2*zphn6(jl)*zdiff
 
 2662           pabcu(jl, 22, jc) = pabcu(jl, 22, jcp1) + &
 
 2663             zably(jl, 9, jc)*rn2o/rco2*zpsn6(jl)*zdiff
 
 2665           pabcu(jl, 23, jc) = pabcu(jl, 23, jcp1) + &
 
 2666             zably(jl, 8, jc)*rcfc11/rco2*zdiff
 
 2667           pabcu(jl, 24, jc) = pabcu(jl, 24, jcp1) + &
 
 2668             zably(jl, 8, jc)*rcfc12/rco2*zdiff
 
 2679 SUBROUTINE lwbv_lmdar4(klim, pdp, pdt0, pemis, ppmb, ptl, ptave, pabcu, &
 
 2680     pfluc, pbint, pbsui, pcts, pcntrb)
 
 2683   include 
"raddimlw.h" 
 2722   REAL (KIND=8) pdt0(
kdlon)
 
 2723   REAL (KIND=8) pemis(
kdlon)
 
 2732   REAL (KIND=8) pbsui(
kdlon)
 
 2740   REAL (KIND=8) zbsur(
kdlon, ninter)
 
 2741   REAL (KIND=8) zbtop(
kdlon, ninter)
 
 2745   REAL (KIND=8) zgasur(
kdlon, 8, 2)
 
 2746   REAL (KIND=8) zgbsur(
kdlon, 8, 2)
 
 2747   REAL (KIND=8) zgatop(
kdlon, 8, 2)
 
 2748   REAL (KIND=8) zgbtop(
kdlon, 8, 2)
 
 2750   INTEGER nuaer, ntraer
 
 2753   CALL lwb_lmdar4(pdt0, ptave, ptl, zb, pbint, pbsui, zbsur, zbtop, zdbsl, &
 
 2754     zga, zgb, zgasur, zgbsur, zgatop, zgbtop)
 
 2759   CALL lwv_lmdar4(nuaer, ntraer, klim, pabcu, zb, pbint, pbsui, zbsur, zbtop, &
 
 2760     zdbsl, pemis, ppmb, ptave, zga, zgb, zgasur, zgbsur, zgatop, zgbtop, &
 
 2761     pcntrb, pcts, pfluc)
 
 2765 SUBROUTINE lwc_lmdar4(klim, pcldld, pcldlu, pemis, pfluc, pbint, pbsuin, &
 
 2766     pcts, pcntrb, pflux)
 
 2820   REAL (KIND=8) pbsuin(
kdlon) 
 
 2826   REAL (KIND=8) pemis(
kdlon)
 
 2837   INTEGER jk, jl, imaxc, imx1, imx2, jkj, jkp1, jkm1
 
 2838   INTEGER jk1, jk2, jkc, jkcp1, jcloud
 
 2839   INTEGER imxm1, imxp1
 
 2840   REAL (KIND=8) zcfrac
 
 2864       IF (pcldlu(jl,jk)>zepsc) 
THEN 
 2869       imaxc = max(imxp(jl), imaxc)
 
 2877   DO jk = 1, 
kflev + 1
 
 2879       pflux(jl, 1, jk) = pfluc(jl, 1, jk)
 
 2880       pflux(jl, 2, jk) = pfluc(jl, 2, jk)
 
 2898     DO jk1 = 1, 
kflev + 1
 
 2899       DO jk2 = 1, 
kflev + 1
 
 2901           zupf(jl, jk2, jk1) = pfluc(jl, 1, jk1)
 
 2902           zdnf(jl, jk2, jk1) = pfluc(jl, 2, jk1)
 
 2919       DO jk = jkcp1, 
kflev + 1
 
 2925           DO jkj = jkcp1, jkm1
 
 2927               zfu(jl) = zfu(jl) + pcntrb(jl, jk, jkj)
 
 2933           zupf(jl, jkcp1, jk) = pbint(jl, jk) - zfu(jl)
 
 2948           DO jkj = jkp1, jcloud
 
 2950               zfd(jl) = zfd(jl) + pcntrb(jl, jk, jkj)
 
 2955           zdnf(jl, jkcp1, jk) = -pbint(jl, jk) - zfd(jl)
 
 2968     DO jk1 = 1, 
kflev + 1
 
 2969       DO jk2 = 1, 
kflev + 1
 
 2971           zclm(jl, jk1, jk2) = 0.
 
 2980     DO jk1 = 2, 
kflev + 1
 
 2985       DO jk = jk1 - 1, 1, -1
 
 2989             zclear(jl) = zclear(jl)*(1.0-max(pcldlu(jl, &
 
 2990               jk),zcloud(jl)))/(1.0-min(zcloud(jl),1.-zepsec))
 
 2991             zclm(jl, jk1, jk) = 1.0 - zclear(jl)
 
 2992             zcloud(jl) = pcldlu(jl, jk)
 
 2993           ELSE IF (novlp==2) 
THEN 
 2995             zcloud(jl) = max(zcloud(jl), pcldlu(jl,jk))
 
 2996             zclm(jl, jk1, jk) = zcloud(jl)
 
 2997           ELSE IF (novlp==3) 
THEN 
 2999             zclear(jl) = zclear(jl)*(1.0-pcldlu(jl,jk))
 
 3000             zcloud(jl) = 1.0 - zclear(jl)
 
 3001             zclm(jl, jk1, jk) = zcloud(jl)
 
 3020             zclear(jl) = zclear(jl)*(1.0-max(pcldld(jl, &
 
 3021               jk),zcloud(jl)))/(1.0-min(zcloud(jl),1.-zepsec))
 
 3022             zclm(jl, jk1, jk) = 1.0 - zclear(jl)
 
 3023             zcloud(jl) = pcldld(jl, jk)
 
 3024           ELSE IF (novlp==2) 
THEN 
 3026             zcloud(jl) = max(zcloud(jl), pcldld(jl,jk))
 
 3027             zclm(jl, jk1, jk) = zcloud(jl)
 
 3028           ELSE IF (novlp==3) 
THEN 
 3030             zclear(jl) = zclear(jl)*(1.0-pcldld(jl,jk))
 
 3031             zcloud(jl) = 1.0 - zclear(jl)
 
 3032             zclm(jl, jk1, jk) = zcloud(jl)
 
 3047       pflux(jl, 2, 
kflev+1) = 0.
 
 3050     DO jk1 = 
kflev, 1, -1
 
 3055         zfd(jl) = (1.-zclm(jl,jk1,
kflev))*zdnf(jl, 1, jk1)
 
 3061         zfd(jl) = zfd(jl) + zclm(jl, jk1, jk1)*zdnf(jl, jk1+1, jk1)
 
 3066       DO jk = 
kflev - 1, jk1, -1
 
 3068           zcfrac = zclm(jl, jk1, jk+1) - zclm(jl, jk1, jk)
 
 3069           zfd(jl) = zfd(jl) + zcfrac*zdnf(jl, jk+2, jk1)
 
 3074         pflux(jl, 2, jk1) = zfd(jl)
 
 3084       pflux(jl, 1, 1) = pemis(jl)*pbsuin(jl) - (1.-pemis(jl))*pflux(jl, 2, 1)
 
 3091     DO jk1 = 2, 
kflev + 1
 
 3096         zfu(jl) = (1.-zclm(jl,jk1,1))*zupf(jl, 1, jk1)
 
 3102         zfu(jl) = zfu(jl) + zclm(jl, jk1, jk1-1)*zupf(jl, jk1, jk1)
 
 3109           zcfrac = zclm(jl, jk1, jk-1) - zclm(jl, jk1, jk)
 
 3110           zfu(jl) = zfu(jl) + zcfrac*zupf(jl, jk, jk1)
 
 3115         pflux(jl, 1, jk1) = zfu(jl)
 
 3126   IF (.NOT. levoigt) 
THEN 
 3128       zfn10(jl) = pflux(jl, 1, klim) + pflux(jl, 2, klim)
 
 3130     DO jk = klim + 1, 
kflev + 1
 
 3132         zfn10(jl) = zfn10(jl) + pcts(jl, jk-1)
 
 3133         pflux(jl, 1, jk) = zfn10(jl)
 
 3134         pflux(jl, 2, jk) = 0.0
 
 3141 SUBROUTINE lwb_lmdar4(pdt0, ptave, ptl, pb, pbint, pbsuin, pbsur, pbtop, &
 
 3142     pdbsl, pga, pgb, pgasur, pgbsur, pgatop, pgbtop)
 
 3146   include 
"raddimlw.h" 
 3198   REAL (KIND=8) pdt0(
kdlon)
 
 3204   REAL (KIND=8) pbsuin(
kdlon) 
 
 3205   REAL (KIND=8) pbsur(
kdlon, ninter) 
 
 3206   REAL (KIND=8) pbtop(
kdlon, ninter) 
 
 3210   REAL (KIND=8) pgasur(
kdlon, 8, 2) 
 
 3211   REAL (KIND=8) pgbsur(
kdlon, 8, 2) 
 
 3212   REAL (KIND=8) pgatop(
kdlon, 8, 2) 
 
 3213   REAL (KIND=8) pgbtop(
kdlon, 8, 2) 
 
 3221   INTEGER jk, jl, ic, jnu, jf, jg
 
 3223   INTEGER k, j, ixtox, indto, ixtx, indt
 
 3224   INTEGER indsu, indtp
 
 3225   REAL (KIND=8) zdsto1, zdstox, zdst1, zdstx
 
 3228   REAL (KIND=8) tstand
 
 4407   DO jk = 1, 
kflev + 1
 
 4424         zti(jl) = (ptl(jl,jk)-tstand)/tstand
 
 4425         zres(jl) = 
xp(1, jnu) + zti(jl)*(
xp(2,jnu)+zti(jl)*(
xp(3, &
 
 4426           jnu)+zti(jl)*(
xp(4,jnu)+zti(jl)*(
xp(5,jnu)+zti(jl)*(
xp(6,jnu))))))
 
 4427         pbint(jl, jk) = pbint(jl, jk) + zres(jl)
 
 4428         pb(jl, jnu, jk) = zres(jl)
 
 4429         zblev(jl, jk) = zres(jl)
 
 4430         zti2(jl) = (ptave(jl,jk)-tstand)/tstand
 
 4431         zres2(jl) = 
xp(1, jnu) + zti2(jl)*(
xp(2,jnu)+zti2(jl)*(
xp(3, &
 
 4432           jnu)+zti2(jl)*(
xp(4,jnu)+zti2(jl)*(
xp(5,jnu)+zti2(jl)*(
xp(6,jnu)))) &
 
 4434         zblay(jl, jk) = zres2(jl)
 
 4443       zti(jl) = (ptl(jl,
kflev+1)-tstand)/tstand
 
 4444       zti2(jl) = (ptl(jl,1)+pdt0(jl)-tstand)/tstand
 
 4445       zres(jl) = 
xp(1, jnu) + zti(jl)*(
xp(2,jnu)+zti(jl)*(
xp(3, &
 
 4446         jnu)+zti(jl)*(
xp(4,jnu)+zti(jl)*(
xp(5,jnu)+zti(jl)*(
xp(6,jnu))))))
 
 4447       zres2(jl) = 
xp(1, jnu) + zti2(jl)*(
xp(2,jnu)+zti2(jl)*(
xp(3, &
 
 4448         jnu)+zti2(jl)*(
xp(4,jnu)+zti2(jl)*(
xp(5,jnu)+zti2(jl)*(
xp(6,jnu))))))
 
 4449       pbint(jl, 
kflev+1) = pbint(jl, 
kflev+1) + zres(jl)
 
 4450       pb(jl, jnu, 
kflev+1) = zres(jl)
 
 4451       zblev(jl, 
kflev+1) = zres(jl)
 
 4452       pbtop(jl, jnu) = zres(jl)
 
 4453       pbsur(jl, jnu) = zres2(jl)
 
 4454       pbsuin(jl) = pbsuin(jl) + zres2(jl)
 
 4465         pdbsl(jl, jnu, jk1) = zblay(jl, jk) - zblev(jl, jk)
 
 4466         pdbsl(jl, jnu, jk2) = zblev(jl, jk+1) - zblay(jl, jk)
 
 4480     ixtox = max(1, min(mxixt,int(zdsto1+1.)))
 
 4482     IF (zdstox<0.5) 
THEN 
 4488     zdst1 = (ptl(jl,1)-
tintp(1))/tstp
 
 4489     ixtx = max(1, min(mxixt,int(zdst1+1.)))
 
 4490     zdstx = (ptl(jl,1)-
tintp(ixtx))/tstp
 
 4503         pgasur(jl, jg, jf) = 
ga(indsu, 2*jg-1, jf)
 
 4504         pgbsur(jl, jg, jf) = 
gb(indsu, 2*jg-1, jf)
 
 4506         pgatop(jl, jg, jf) = 
ga(indtp, 2*jg-1, jf)
 
 4507         pgbtop(jl, jg, jf) = 
gb(indtp, 2*jg-1, jf)
 
 4514       zdst1 = (ptave(jl,jk)-
tintp(1))/tstp
 
 4515       ixtx = max(1, min(mxixt,int(zdst1+1.)))
 
 4516       zdstx = (ptave(jl,jk)-
tintp(ixtx))/tstp
 
 4529           pga(jl, jg, jf, jk) = 
ga(indt, 2*jg, jf)
 
 4530           pgb(jl, jg, jf, jk) = 
gb(indt, 2*jg, jf)
 
 4540 SUBROUTINE lwv_lmdar4(kuaer, ktraer, klim, pabcu, pb, pbint, pbsuin, pbsur, &
 
 4541     pbtop, pdbsl, pemis, ppmb, ptave, pga, pgb, pgasur, pgbsur, pgatop, &
 
 4542     pgbtop, pcntrb, pcts, pfluc)
 
 4545   include 
"raddimlw.h" 
 4579   INTEGER kuaer, ktraer, klim
 
 4584   REAL (KIND=8) pbsur(
kdlon, ninter) 
 
 4585   REAL (KIND=8) pbsuin(
kdlon) 
 
 4586   REAL (KIND=8) pbtop(
kdlon, ninter) 
 
 4588   REAL (KIND=8) pemis(
kdlon) 
 
 4593   REAL (KIND=8) pgasur(
kdlon, 8, 2) 
 
 4594   REAL (KIND=8) pgbsur(
kdlon, 8, 2) 
 
 4595   REAL (KIND=8) pgatop(
kdlon, 8, 2) 
 
 4596   REAL (KIND=8) pgbtop(
kdlon, 8, 2) 
 
 4612   DO jk = 1, 
kflev + 1
 
 4629   CALL lwvn_lmdar4(kuaer, ktraer, pabcu, pdbsl, pga, pgb, zadjd, zadju, &
 
 4633   CALL lwvd_lmdar4(kuaer, ktraer, pabcu, zdbdt, pga, pgb, pcntrb, zdisd, &
 
 4638   CALL lwvb_lmdar4(kuaer, ktraer, klim, pabcu, zadjd, zadju, pb, pbint, &
 
 4639     pbsuin, pbsur, pbtop, zdisd, zdisu, pemis, ppmb, pga, pgb, pgasur, &
 
 4640     pgbsur, pgatop, pgbtop, pcts, pfluc)
 
 4645 SUBROUTINE lwvb_lmdar4(kuaer, ktraer, klim, pabcu, padjd, padju, pb, pbint, &
 
 4646     pbsui, pbsur, pbtop, pdisd, pdisu, pemis, ppmb, pga, pgb, pgasur, pgbsur, &
 
 4647     pgatop, pgbtop, pcts, pfluc)
 
 4650   include 
"raddimlw.h" 
 4687   INTEGER kuaer, ktraer, klim
 
 4694   REAL (KIND=8) pbsur(
kdlon, ninter) 
 
 4695   REAL (KIND=8) pbsui(
kdlon) 
 
 4696   REAL (KIND=8) pbtop(
kdlon, ninter) 
 
 4699   REAL (KIND=8) pemis(
kdlon) 
 
 4703   REAL (KIND=8) pgasur(
kdlon, 8, 2) 
 
 4704   REAL (KIND=8) pgbsur(
kdlon, 8, 2) 
 
 4705   REAL (KIND=8) pgatop(
kdlon, 8, 2) 
 
 4706   REAL (KIND=8) pgbtop(
kdlon, 8, 2) 
 
 4713   REAL (KIND=8) zbgnd(
kdlon)
 
 4714   REAL (KIND=8) zfd(
kdlon)
 
 4715   REAL (KIND=8) zfn10(
kdlon)
 
 4716   REAL (KIND=8) zfu(
kdlon)
 
 4717   REAL (KIND=8) ztt(
kdlon, ntra)
 
 4718   REAL (KIND=8) ztt1(
kdlon, ntra)
 
 4719   REAL (KIND=8) ztt2(
kdlon, ntra)
 
 4720   REAL (KIND=8) zuu(
kdlon, nua)
 
 4721   REAL (KIND=8) zcnsol(
kdlon)
 
 4722   REAL (KIND=8) zcntop(
kdlon)
 
 4725   INTEGER jstra, jstru
 
 4726   INTEGER ind1, ind2, ind3, ind4, in, jlim
 
 4727   REAL (KIND=8) zctstr
 
 4770     in = (jk-1)*ng1p1 + 1
 
 4774         zuu(jl, ja) = pabcu(jl, ja, in)
 
 4779     CALL lwtt_lmdar4(pgatop(1,1,1), pgbtop(1,1,1), zuu, ztt)
 
 4782       zcntop(jl) = pbtop(jl, 1)*ztt(jl, 1)*ztt(jl, 10) + &
 
 4783         pbtop(jl, 2)*ztt(jl, 2)*ztt(jl, 7)*ztt(jl, 11) + &
 
 4784         pbtop(jl, 3)*ztt(jl, 4)*ztt(jl, 8)*ztt(jl, 12) + &
 
 4785         pbtop(jl, 4)*ztt(jl, 5)*ztt(jl, 9)*ztt(jl, 13) + &
 
 4786         pbtop(jl, 5)*ztt(jl, 3)*ztt(jl, 14) + pbtop(jl, 6)*ztt(jl, 6)*ztt(jl, &
 
 4788       zfd(jl) = zcntop(jl) - pbint(jl, jk) - pdisd(jl, jk) - padjd(jl, jk)
 
 4789       pfluc(jl, 2, jk) = zfd(jl)
 
 4795   in = (jk-1)*ng1p1 + 1
 
 4798     zcntop(jl) = pbtop(jl, 1) + pbtop(jl, 2) + pbtop(jl, 3) + pbtop(jl, 4) + &
 
 4799       pbtop(jl, 5) + pbtop(jl, 6)
 
 4800     zfd(jl) = zcntop(jl) - pbint(jl, jk) - pdisd(jl, jk) - padjd(jl, jk)
 
 4801     pfluc(jl, 2, jk) = zfd(jl)
 
 4815   IF (.NOT. levoigt) 
THEN 
 4816     DO jk = 
kflev, 1, -1
 
 4817       IF (ppmb(1,jk)<10.0) 
THEN 
 4824   IF (.NOT. levoigt) 
THEN 
 4835     DO jstra = 
kflev, jlim, -1
 
 4836       jstru = (jstra-1)*ng1p1 + 1
 
 4840           zuu(jl, ja) = pabcu(jl, ja, jstru)
 
 4845       CALL lwtt_lmdar4(pga(1,1,1,jstra), pgb(1,1,1,jstra), zuu, ztt)
 
 4848         zctstr = (pb(jl,1,jstra)+pb(jl,1,jstra+1))* &
 
 4849           (ztt1(jl,1)*ztt1(jl,10)-ztt(jl,1)*ztt(jl,10)) + &
 
 4850           (pb(jl,2,jstra)+pb(jl,2,jstra+1))*(ztt1(jl,2)*ztt1(jl,7)*ztt1(jl,11 &
 
 4851           )-ztt(jl,2)*ztt(jl,7)*ztt(jl,11)) + (pb(jl,3,jstra)+pb(jl,3,jstra+1 &
 
 4852           ))*(ztt1(jl,4)*ztt1(jl,8)*ztt1(jl,12)-ztt(jl,4)*ztt(jl,8)*ztt(jl,12 &
 
 4853           )) + (pb(jl,4,jstra)+pb(jl,4,jstra+1))*(ztt1(jl,5)*ztt1(jl,9)*ztt1( &
 
 4854           jl,13)-ztt(jl,5)*ztt(jl,9)*ztt(jl,13)) + (pb(jl,5,jstra)+pb(jl,5, &
 
 4855           jstra+1))*(ztt1(jl,3)*ztt1(jl,14)-ztt(jl,3)*ztt(jl,14)) + &
 
 4856           (pb(jl,6,jstra)+pb(jl,6,jstra+1))*(ztt1(jl,6)*ztt1(jl,15)-ztt(jl,6) &
 
 4858         pcts(jl, jstra) = zctstr*0.5
 
 4862           ztt1(jl, ja) = ztt(jl, ja)
 
 4871         pcts(jl, jstra) = 0.
 
 4881     zbgnd(jl) = pbsui(jl)*pemis(jl) - (1.-pemis(jl))*pfluc(jl, 2, 1) - &
 
 4886   in = (jk-1)*ng1p1 + 1
 
 4889     zcnsol(jl) = pbsur(jl, 1) + pbsur(jl, 2) + pbsur(jl, 3) + pbsur(jl, 4) + &
 
 4890       pbsur(jl, 5) + pbsur(jl, 6)
 
 4891     zcnsol(jl) = zcnsol(jl)*zbgnd(jl)/pbsui(jl)
 
 4892     zfu(jl) = zcnsol(jl) + pbint(jl, jk) - pdisu(jl, jk) - padju(jl, jk)
 
 4893     pfluc(jl, 1, jk) = zfu(jl)
 
 4896   DO jk = 2, 
kflev + 1
 
 4897     in = (jk-1)*ng1p1 + 1
 
 4902         zuu(jl, ja) = pabcu(jl, ja, 1) - pabcu(jl, ja, in)
 
 4907     CALL lwtt_lmdar4(pgasur(1,1,1), pgbsur(1,1,1), zuu, ztt)
 
 4910       zcnsol(jl) = pbsur(jl, 1)*ztt(jl, 1)*ztt(jl, 10) + &
 
 4911         pbsur(jl, 2)*ztt(jl, 2)*ztt(jl, 7)*ztt(jl, 11) + &
 
 4912         pbsur(jl, 3)*ztt(jl, 4)*ztt(jl, 8)*ztt(jl, 12) + &
 
 4913         pbsur(jl, 4)*ztt(jl, 5)*ztt(jl, 9)*ztt(jl, 13) + &
 
 4914         pbsur(jl, 5)*ztt(jl, 3)*ztt(jl, 14) + pbsur(jl, 6)*ztt(jl, 6)*ztt(jl, &
 
 4916       zcnsol(jl) = zcnsol(jl)*zbgnd(jl)/pbsui(jl)
 
 4917       zfu(jl) = zcnsol(jl) + pbint(jl, jk) - pdisu(jl, jk) - padju(jl, jk)
 
 4918       pfluc(jl, 1, jk) = zfu(jl)
 
 4928   IF (.NOT. levoigt) 
THEN 
 4930       zfn10(jl) = pfluc(jl, 1, jlim) + pfluc(jl, 2, jlim)
 
 4932     DO jk = jlim + 1, 
kflev + 1
 
 4934         zfn10(jl) = zfn10(jl) + pcts(jl, jk-1)
 
 4935         pfluc(jl, 1, jk) = zfn10(jl)
 
 4936         pfluc(jl, 2, jk) = 0.
 
 4945 SUBROUTINE lwvd_lmdar4(kuaer, ktraer, pabcu, pdbdt, pga, pgb, pcntrb, pdisd, &
 
 4949   include 
"raddimlw.h" 
 4978   INTEGER kuaer, ktraer
 
 4991   REAL (KIND=8) zglayd(
kdlon)
 
 4992   REAL (KIND=8) zglayu(
kdlon)
 
 4993   REAL (KIND=8) ztt(
kdlon, ntra)
 
 4994   REAL (KIND=8) ztt1(
kdlon, ntra)
 
 4995   REAL (KIND=8) ztt2(
kdlon, ntra)
 
 4997   INTEGER jl, jk, ja, ikp1, ikn, ikd1, jkj, ikd2
 
 4998   INTEGER ikjp1, ikm1, ikj, jlk, iku1, ijkl, iku2
 
 4999   INTEGER ind1, ind2, ind3, ind4, itt
 
 5000   REAL (KIND=8) zww, zdzxdg, zdzxmg
 
 5010   DO jk = 1, 
kflev + 1
 
 5056   DO jk = 1, 
kflev - 1
 
 5058     ikn = (jk-1)*ng1p1 + 1
 
 5061     CALL lwttm_lmdar4(pga(1,1,1,jk), pgb(1,1,1,jk), pabcu(1,1,ikn), &
 
 5062       pabcu(1,1,ikd1), ztt1)
 
 5069     DO jkj = ikp1, 
kflev 
 5076       ikd2 = jkj*ng1p1 + 1
 
 5079         CALL lwttm_lmdar4(pga(1,1,1,jkj), pgb(1,1,1,jkj), pabcu(1,1,ikn), &
 
 5080           pabcu(1,1,ikd2), ztt1)
 
 5082         CALL lwttm_lmdar4(pga(1,1,1,jkj), pgb(1,1,1,jkj), pabcu(1,1,ikn), &
 
 5083           pabcu(1,1,ikd2), ztt2)
 
 5088           ztt(jl, ja) = (ztt1(jl,ja)+ztt2(jl,ja))*0.5
 
 5093         zww = pdbdt(jl, 1, jkj)*ztt(jl, 1)*ztt(jl, 10) + &
 
 5094           pdbdt(jl, 2, jkj)*ztt(jl, 2)*ztt(jl, 7)*ztt(jl, 11) + &
 
 5095           pdbdt(jl, 3, jkj)*ztt(jl, 4)*ztt(jl, 8)*ztt(jl, 12) + &
 
 5096           pdbdt(jl, 4, jkj)*ztt(jl, 5)*ztt(jl, 9)*ztt(jl, 13) + &
 
 5097           pdbdt(jl, 5, jkj)*ztt(jl, 3)*ztt(jl, 14) + &
 
 5098           pdbdt(jl, 6, jkj)*ztt(jl, 6)*ztt(jl, 15)
 
 5101         pdisd(jl, jk) = pdisd(jl, jk) + zdzxdg
 
 5102         pcntrb(jl, jk, ikjp1) = zdzxdg
 
 5119   DO jk = 3, 
kflev + 1
 
 5120     ikn = (jk-1)*ng1p1 + 1
 
 5123     iku1 = ikj*ng1p1 + 1
 
 5126     CALL lwttm_lmdar4(pga(1,1,1,ikj), pgb(1,1,1,ikj), pabcu(1,1,iku1), &
 
 5127       pabcu(1,1,ikn), ztt1)
 
 5141       iku2 = (ijkl-1)*ng1p1 + 1
 
 5145         CALL lwttm_lmdar4(pga(1,1,1,ijkl), pgb(1,1,1,ijkl), pabcu(1,1,iku2), &
 
 5146           pabcu(1,1,ikn), ztt1)
 
 5148         CALL lwttm_lmdar4(pga(1,1,1,ijkl), pgb(1,1,1,ijkl), pabcu(1,1,iku2), &
 
 5149           pabcu(1,1,ikn), ztt2)
 
 5154           ztt(jl, ja) = (ztt1(jl,ja)+ztt2(jl,ja))*0.5
 
 5159         zww = pdbdt(jl, 1, ijkl)*ztt(jl, 1)*ztt(jl, 10) + &
 
 5160           pdbdt(jl, 2, ijkl)*ztt(jl, 2)*ztt(jl, 7)*ztt(jl, 11) + &
 
 5161           pdbdt(jl, 3, ijkl)*ztt(jl, 4)*ztt(jl, 8)*ztt(jl, 12) + &
 
 5162           pdbdt(jl, 4, ijkl)*ztt(jl, 5)*ztt(jl, 9)*ztt(jl, 13) + &
 
 5163           pdbdt(jl, 5, ijkl)*ztt(jl, 3)*ztt(jl, 14) + &
 
 5164           pdbdt(jl, 6, ijkl)*ztt(jl, 6)*ztt(jl, 15)
 
 5167         pdisu(jl, jk) = pdisu(jl, jk) + zdzxmg
 
 5168         pcntrb(jl, jk, ijkl) = zdzxmg
 
 5177 SUBROUTINE lwvn_lmdar4(kuaer, ktraer, pabcu, pdbsl, pga, pgb, padjd, padju, &
 
 5182   include 
"raddimlw.h" 
 5213   INTEGER kuaer, ktraer
 
 5227   REAL (KIND=8) zglayd(
kdlon)
 
 5228   REAL (KIND=8) zglayu(
kdlon)
 
 5229   REAL (KIND=8) ztt(
kdlon, ntra)
 
 5230   REAL (KIND=8) ztt1(
kdlon, ntra)
 
 5231   REAL (KIND=8) ztt2(
kdlon, ntra)
 
 5232   REAL (KIND=8) zuu(
kdlon, nua)
 
 5234   INTEGER jk, jl, ja, im12, ind, inu, ixu, jg
 
 5235   INTEGER ixd, ibs, idd, imu, jk1, jk2, jnu
 
 5248   DO jk = 1, 
kflev + 1
 
 5290     ind = (jk-1)*ng1p1 + 1
 
 5305           zuu(jl, ja) = pabcu(jl, ja, ind) - pabcu(jl, ja, idd)
 
 5310       CALL lwtt_lmdar4(pga(1,1,1,jk), pgb(1,1,1,jk), zuu, ztt)
 
 5313         zwtr = pdbsl(jl, 1, ibs)*ztt(jl, 1)*ztt(jl, 10) + &
 
 5314           pdbsl(jl, 2, ibs)*ztt(jl, 2)*ztt(jl, 7)*ztt(jl, 11) + &
 
 5315           pdbsl(jl, 3, ibs)*ztt(jl, 4)*ztt(jl, 8)*ztt(jl, 12) + &
 
 5316           pdbsl(jl, 4, ibs)*ztt(jl, 5)*ztt(jl, 9)*ztt(jl, 13) + &
 
 5317           pdbsl(jl, 5, ibs)*ztt(jl, 3)*ztt(jl, 14) + &
 
 5318           pdbsl(jl, 6, ibs)*ztt(jl, 6)*ztt(jl, 15)
 
 5319         zglayd(jl) = zglayd(jl) + zwtr*
wg1(jg)
 
 5329           zuu(jl, ja) = pabcu(jl, ja, imu) - pabcu(jl, ja, inu)
 
 5334       CALL lwtt_lmdar4(pga(1,1,1,jk), pgb(1,1,1,jk), zuu, ztt)
 
 5337         zwtr = pdbsl(jl, 1, ibs)*ztt(jl, 1)*ztt(jl, 10) + &
 
 5338           pdbsl(jl, 2, ibs)*ztt(jl, 2)*ztt(jl, 7)*ztt(jl, 11) + &
 
 5339           pdbsl(jl, 3, ibs)*ztt(jl, 4)*ztt(jl, 8)*ztt(jl, 12) + &
 
 5340           pdbsl(jl, 4, ibs)*ztt(jl, 5)*ztt(jl, 9)*ztt(jl, 13) + &
 
 5341           pdbsl(jl, 5, ibs)*ztt(jl, 3)*ztt(jl, 14) + &
 
 5342           pdbsl(jl, 6, ibs)*ztt(jl, 6)*ztt(jl, 15)
 
 5343         zglayu(jl) = zglayu(jl) + zwtr*
wg1(jg)
 
 5349       padjd(jl, jk) = zglayd(jl)
 
 5350       pcntrb(jl, jk, jk+1) = zglayd(jl)
 
 5351       padju(jl, jk+1) = zglayu(jl)
 
 5352       pcntrb(jl, jk+1, jk) = zglayu(jl)
 
 5353       pcntrb(jl, jk, jk) = 0.0
 
 5363         pdbdt(jl, jnu, jk) = pdbsl(jl, jnu, jk1) + pdbsl(jl, jnu, jk2)
 
 5374   include 
"raddimlw.h" 
 5407   REAL (KIND=8) o1h, o2h
 
 5410   REAL (KIND=8) rpialf0
 
 5415   REAL (KIND=8) puu(
kdlon, nua)
 
 5416   REAL (KIND=8) ptt(
kdlon, ntra)
 
 5417   REAL (KIND=8) pga(
kdlon, 8, 2)
 
 5418   REAL (KIND=8) pgb(
kdlon, 8, 2)
 
 5422   REAL (KIND=8) zz, zxd, zxn
 
 5423   REAL (KIND=8) zpu, zpu10, zpu11, zpu12, zpu13
 
 5424   REAL (KIND=8) zeu, zeu10, zeu11, zeu12, zeu13
 
 5425   REAL (KIND=8) zx, zy, zsq1, zsq2, zvxy, zuxy
 
 5426   REAL (KIND=8) zaercn, zto1, zto2, zxch4, zych4, zxn2o, zyn2o
 
 5427   REAL (KIND=8) zsqn21, zodn21, zsqh42, zodh42
 
 5428   REAL (KIND=8) zsqh41, zodh41, zsqn22, zodn22, zttf11, zttf12
 
 5429   REAL (KIND=8) zuu11, zuu12, za11, za12
 
 5442       zz = sqrt(puu(jl,ja))
 
 5446       zxd = pgb(jl, ja, 1) + zz*(pgb(jl,ja,2)+zz)
 
 5447       zxn = pga(jl, ja, 1) + zz*(pga(jl,ja,2))
 
 5448       ptt(jl, ja) = zxn/zxd
 
 5459     ptt(jl, 9) = ptt(jl, 8)
 
 5463     zpu = 0.002*puu(jl, 10)
 
 5478     zuxy = 4.*zx*zx/(rpialf0*zy)
 
 5479     zsq1 = sqrt(1.+o1h*zuxy) - 1.
 
 5480     zsq2 = sqrt(1.+o2h*zuxy) - 1.
 
 5481     zvxy = rpialf0*zy/(2.*zx)
 
 5482     zaercn = puu(jl, 17) + zeu12 + zpu12
 
 5483     zto1 = exp(-zvxy*zsq1-zaercn)
 
 5484     zto2 = exp(-zvxy*zsq2-zaercn)
 
 5494     zuxy = 4.*zxch4*zxch4/(0.103*zych4)
 
 5495     zsqh41 = sqrt(1.+33.7*zuxy) - 1.
 
 5496     zvxy = 0.103*zych4/(2.*zxch4)
 
 5497     zodh41 = zvxy*zsqh41
 
 5503     zuxy = 4.*zxn2o*zxn2o/(0.416*zyn2o)
 
 5504     zsqn21 = sqrt(1.+21.3*zuxy) - 1.
 
 5505     zvxy = 0.416*zyn2o/(2.*zxn2o)
 
 5506     zodn21 = zvxy*zsqn21
 
 5510     zuxy = 4.*zxch4*zxch4/(0.113*zych4)
 
 5511     zsqh42 = sqrt(1.+400.*zuxy) - 1.
 
 5512     zvxy = 0.113*zych4/(2.*zxch4)
 
 5513     zodh42 = zvxy*zsqh42
 
 5517     zuxy = 4.*zxn2o*zxn2o/(0.197*zyn2o)
 
 5518     zsqn22 = sqrt(1.+2000.*zuxy) - 1.
 
 5519     zvxy = 0.197*zyn2o/(2.*zxn2o)
 
 5520     zodn22 = zvxy*zsqn22
 
 5524     za11 = 2.*puu(jl, 23)*4.404e+05
 
 5525     zttf11 = 1. - za11*0.003225
 
 5529     za12 = 2.*puu(jl, 24)*6.7435e+05
 
 5530     zttf12 = 1. - za12*0.003225
 
 5532     zuu11 = -puu(jl, 15) - zeu10 - zpu10
 
 5533     zuu12 = -puu(jl, 16) - zeu11 - zpu11 - zodh41 - zodn21
 
 5534     ptt(jl, 10) = exp(-puu(jl,14))
 
 5535     ptt(jl, 11) = exp(zuu11)
 
 5536     ptt(jl, 12) = exp(zuu12)*zttf11*zttf12
 
 5537     ptt(jl, 13) = 0.7554*zto1 + 0.2446*zto2
 
 5538     ptt(jl, 14) = ptt(jl, 10)*exp(-zeu13-zpu13)
 
 5539     ptt(jl, 15) = exp(-puu(jl,14)-zodh42-zodn22)
 
 5547   include 
"raddimlw.h" 
 5580   REAL (KIND=8) o1h, o2h
 
 5583   REAL (KIND=8) rpialf0
 
 5588   REAL (KIND=8) pga(
kdlon, 8, 2) 
 
 5589   REAL (KIND=8) pgb(
kdlon, 8, 2) 
 
 5590   REAL (KIND=8) puu1(
kdlon, nua) 
 
 5591   REAL (KIND=8) puu2(
kdlon, nua) 
 
 5592   REAL (KIND=8) ptt(
kdlon, ntra) 
 
 5597   REAL (KIND=8) zz, zxd, zxn
 
 5598   REAL (KIND=8) zpu, zpu10, zpu11, zpu12, zpu13
 
 5599   REAL (KIND=8) zeu, zeu10, zeu11, zeu12, zeu13
 
 5600   REAL (KIND=8) zx, zy, zuxy, zsq1, zsq2, zvxy, zaercn, zto1, zto2
 
 5601   REAL (KIND=8) zxch4, zych4, zsqh41, zodh41
 
 5602   REAL (KIND=8) zxn2o, zyn2o, zsqn21, zodn21, zsqh42, zodh42
 
 5603   REAL (KIND=8) zsqn22, zodn22, za11, zttf11, za12, zttf12
 
 5604   REAL (KIND=8) zuu11, zuu12
 
 5619       zz = sqrt(puu1(jl,ja)-puu2(jl,ja))
 
 5620       zxd = pgb(jl, ja, 1) + zz*(pgb(jl,ja,2)+zz)
 
 5621       zxn = pga(jl, ja, 1) + zz*(pga(jl,ja,2))
 
 5622       ptt(jl, ja) = zxn/zxd
 
 5633     ptt(jl, 9) = ptt(jl, 8)
 
 5637     zpu = 0.002*(puu1(jl,10)-puu2(jl,10))
 
 5642     zeu = (puu1(jl,11)-puu2(jl,11))
 
 5650     zx = (puu1(jl,12)-puu2(jl,12))
 
 5651     zy = (puu1(jl,13)-puu2(jl,13))
 
 5652     zuxy = 4.*zx*zx/(rpialf0*zy)
 
 5653     zsq1 = sqrt(1.+o1h*zuxy) - 1.
 
 5654     zsq2 = sqrt(1.+o2h*zuxy) - 1.
 
 5655     zvxy = rpialf0*zy/(2.*zx)
 
 5656     zaercn = (puu1(jl,17)-puu2(jl,17)) + zeu12 + zpu12
 
 5657     zto1 = exp(-zvxy*zsq1-zaercn)
 
 5658     zto2 = exp(-zvxy*zsq2-zaercn)
 
 5664     zxch4 = (puu1(jl,19)-puu2(jl,19))
 
 5665     zych4 = (puu1(jl,20)-puu2(jl,20))
 
 5666     zuxy = 4.*zxch4*zxch4/(0.103*zych4)
 
 5667     zsqh41 = sqrt(1.+33.7*zuxy) - 1.
 
 5668     zvxy = 0.103*zych4/(2.*zxch4)
 
 5669     zodh41 = zvxy*zsqh41
 
 5673     zxn2o = (puu1(jl,21)-puu2(jl,21))
 
 5674     zyn2o = (puu1(jl,22)-puu2(jl,22))
 
 5675     zuxy = 4.*zxn2o*zxn2o/(0.416*zyn2o)
 
 5676     zsqn21 = sqrt(1.+21.3*zuxy) - 1.
 
 5677     zvxy = 0.416*zyn2o/(2.*zxn2o)
 
 5678     zodn21 = zvxy*zsqn21
 
 5682     zuxy = 4.*zxch4*zxch4/(0.113*zych4)
 
 5683     zsqh42 = sqrt(1.+400.*zuxy) - 1.
 
 5684     zvxy = 0.113*zych4/(2.*zxch4)
 
 5685     zodh42 = zvxy*zsqh42
 
 5689     zuxy = 4.*zxn2o*zxn2o/(0.197*zyn2o)
 
 5690     zsqn22 = sqrt(1.+2000.*zuxy) - 1.
 
 5691     zvxy = 0.197*zyn2o/(2.*zxn2o)
 
 5692     zodn22 = zvxy*zsqn22
 
 5696     za11 = (puu1(jl,23)-puu2(jl,23))*4.404e+05
 
 5697     zttf11 = 1. - za11*0.003225
 
 5701     za12 = (puu1(jl,24)-puu2(jl,24))*6.7435e+05
 
 5702     zttf12 = 1. - za12*0.003225
 
 5704     zuu11 = -(puu1(jl,15)-puu2(jl,15)) - zeu10 - zpu10
 
 5705     zuu12 = -(puu1(jl,16)-puu2(jl,16)) - zeu11 - zpu11 - zodh41 - zodn21
 
 5706     ptt(jl, 10) = exp(-(puu1(jl,14)-puu2(jl,14)))
 
 5707     ptt(jl, 11) = exp(zuu11)
 
 5708     ptt(jl, 12) = exp(zuu12)*zttf11*zttf12
 
 5709     ptt(jl, 13) = 0.7554*zto1 + 0.2446*zto2
 
 5710     ptt(jl, 14) = ptt(jl, 10)*exp(-zeu13-zpu13)
 
 5711     ptt(jl, 15) = exp(-(puu1(jl,14)-puu2(jl,14))-zodh42-zodn22)
 
real(kind=8), dimension(5, 5), parameter raer
 
real(kind=8), dimension(11, 16, 3), parameter gb
 
real(kind=8), dimension(11), parameter tintp
 
real(kind=8), parameter rtumg
 
subroutine lwttm_lmdar4(pga, pgb, puu1, puu2, ptt)
 
real(kind=8), dimension(11, 16, 3), parameter ga
 
subroutine lwvb_lmdar4(kuaer, ktraer, klim, pabcu, padjd, padju, pb, pbint, pbsui, pbsur, pbtop, pdisd, pdisu, pemis, ppmb, pga, pgb, pgasur, pgbsur, pgatop, pgbtop, pcts, pfluc)
 
real(kind=8), parameter zprumg
 
subroutine swtt1_lmdar4(knu, kabs, kind, pu, ptr)
 
real(kind=8), dimension(4), parameter oct
 
real(kind=8), dimension(2, 5), parameter taua
 
real(kind=8), dimension(2) rsun
 
subroutine lw_lmdar4(ppmb, pdp, ppsol, pdt0, pemis, ptl, ptave, pwv, pozon,paer, pcldld, pcldlu, pview, pcolr, pcolr0, ptoplw, psollw, ptoplw0,psollw0, psollwdown,
 
subroutine lwtt_lmdar4(pga, pgb, puu, ptt)
 
real(kind=8), parameter zpdh2o
 
real(kind=8), dimension(2, 3, 7), parameter apad
 
real(kind=8), dimension(2, 6), parameter rray
 
subroutine swde_lmdar4(pgg, pref, prmuz, pto1, pw, pre1, pre2, ptr1, ptr2)
 
real(kind=8), dimension(2), parameter rt1
 
real(kind=8), dimension(2, 5), parameter rcga
 
real(kind=8), parameter zprh2o
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
 
subroutine lwvn_lmdar4(kuaer, ktraer, pabcu, pdbsl, pga, pgb, padjd, padju, pcntrb, pdbdt)
 
subroutine swr_lmdar4(knu, palbd, pcg, pcld, pdsig, pomega, prayl, psec, ptau, pcgaz, ppizaz, pray1, pray2, prefz, prj, prk, prmue, ptauaz, ptra1, ptra2)
 
subroutine swtt_lmdar4(knu, ka, pu, ptr)
 
real(kind=8), dimension(2, 3, 7), parameter bpad
 
real(kind=8), parameter rtdh2o
 
subroutine swu_lmdar4(psct, pcldsw, ppmb, ppsol, prmu0, pfrac, ptave, pwv, paki, pcld, pclear, pdsig, pfact, prmu, psec, pud)
 
subroutine lwc_lmdar4(klim, pcldld, pcldlu, pemis, pfluc, pbint, pbsuin, pcts, pcntrb, pflux)
 
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
 
subroutine sw2s_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, paki, palbd, palbp, pcg, pcld, pclear, pcldsw, pdsig, pomega, poz, prmu, psec, ptau, pud, pwv, pqs, pfdown, pfup)
 
real(kind=8), dimension(2), parameter wg1
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
 
real(kind=8), parameter tref
 
subroutine sw_lmdar4(psct, prmu0, pfrac, ppmb, pdp, ppsol, palbd, palbp, ptave, pwv, pqs, pozon, paer, pcldsw, ptau, pomega, pcg, pheat, pheat0, palbpla, ptopsw, psolsw, ptopsw0, psolsw0, zfsup, zfsdn, zfsup0, zfsdn0, tauae, pizae, cgae, ptaua, pomegaa, ptopswad, psolswad, ptopswai, psolswai, ok_ade, ok_aie)
 
subroutine swclr_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, palbp, pdsig, prayl, psec, pcgaz, ppizaz, pray1, pray2, prefz, prj, prk, prmu0, ptauaz, ptra1, ptra2)
 
real(kind=8), dimension(6, 6), parameter xp
 
real(kind=8), dimension(2, 5), parameter rpiza
 
real(kind=8), parameter rtdumg
 
subroutine lwv_lmdar4(kuaer, ktraer, klim, pabcu, pb, pbint, pbsuin, pbsur, pbtop, pdbsl, pemis, ppmb, ptave, pga, pgb, pgasur, pgbsur, pgatop, pgbtop, pcntrb, pcts, pfluc)
 
subroutine lwb_lmdar4(pdt0, ptave, ptl, pb, pbint, pbsuin, pbsur, pbtop, pdbsl, pga, pgb, pgasur, pgbsur, pgatop, pgbtop)
 
real(kind=8), parameter zpdumg
 
character(len=4), save type_trac
 
real(kind=8), parameter rth2o
 
subroutine lwu_lmdar4(paer, pdp, ppmb, ppsol, poz, ptave, pview, pwv, pabcu)
 
real(kind=8), dimension(2, 3), parameter d
 
INTERFACE SUBROUTINE RRTM_ECRT_140GP && paer
 
subroutine lwvd_lmdar4(kuaer, ktraer, pabcu, pdbdt, pga, pgb, pcntrb, pdisd, pdisu)
 
subroutine lwbv_lmdar4(klim, pdp, pdt0, pemis, ppmb, ptl, ptave, pabcu, pfluc, pbint, pbsui, pcts, pcntrb)
 
real(kind=8), dimension(8, 3), parameter bt
 
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
 
subroutine sw1s_lmdar4(knu, paer, flag_aer, tauae, pizae, cgae, palbd, palbp, pcg, pcld, pclear, pcldsw, pdsig, pomega, poz, prmu, psec, ptau, pud, pfd, pfu)