Changeset 280 for LMDZ.3.3


Ignore:
Timestamp:
Oct 19, 2001, 12:29:20 PM (23 years ago)
Author:
lmdzadmin
Message:

Modif dans coefkz pour remplacer l'humidite du niveau 1 par qsat(tsol)
Passage des deux albedos de surface (vis et nir)
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/phylmd/clmain.F

    r276 r280  
    88     .                  ok_veget, ocean, npas, nexca, ts,
    99     .                  soil_model,ftsoil,
    10      .                  paprs,pplay,radsol,snow,qsol,evap,albe,fluxlat,
     10     .                  paprs,pplay,radsol,snow,qsol,evap,albe,alblw,
     11     .                  fluxlat,
    1112     .                  rain_f, snow_f, solsw, sollw, sollwdown, fder,
    1213     .                  rlon, rlat, cufi, cvfi, rugos,
     
    112113      REAL evap(klon,nbsrf)
    113114      REAL albe(klon,nbsrf)
     115      REAL alblw(klon,nbsrf)
    114116c$$$ PB
    115117      REAL fluxlat(klon,nbsrf)
     
    135137      REAL yts(klon), yrugos(klon), ypct(klon), yz0_new(klon)
    136138      REAL yalb(klon)
     139      REAL yalblw(klon)
    137140      REAL yu1(klon), yv1(klon)
    138141      real ysnow(klon), yqsol(klon), yagesno(klon)
     
    258261      yqsol = 0.0
    259262      yalb = 0.0
     263      yalblw = 0.0
    260264      yrain_f = 0.0
    261265      ysnow_f = 0.0
     
    370374        yqsol(j) = qsol(i,nsrf)
    371375        yalb(j) = albe(i,nsrf)
     376        yalblw(j) = alblw(i,nsrf)
    372377        yrain_f(j) = rain_f(i)
    373378        ysnow_f(j) = snow_f(i)
     
    452457     e          yu1, yv1, ycoefh,
    453458     e          yt,yq,yts,ypaprs,ypplay,
    454      e          ydelp,yrads,yalb, ysnow, yqsol,
     459     e          ydelp,yrads,yalb, yalblw, ysnow, yqsol,
    455460     e          yrain_f, ysnow_f, yfder, ytaux, ytauy,
    456461c$$$     e          ysollw, ysolsw,
     
    499504c
    500505      albe(:, nsrf) = 0.
     506      alblw(:, nsrf) = 0.
    501507      snow(:, nsrf) = 0.
    502508      qsol(:, nsrf) = 0.
     
    507513         d_ts(i,nsrf) = y_d_ts(j)
    508514         albe(i,nsrf) = yalb(j)
     515         alblw(i,nsrf) = yalblw(j)
    509516         snow(i,nsrf) = ysnow(j)
    510517         qsol(i,nsrf) = yqsol(j)
     
    572579     e                u1lay,v1lay,coef,
    573580     e                t,q,ts,paprs,pplay,
    574      e                delp,radsol,albedo,snow,qsol,
     581     e                delp,radsol,albedo,alblw,snow,qsol,
    575582     e                precip_rain, precip_snow, fder, taux, tauy,
    576583     $                sollw, sollwdown, swdown,fluxlat,
     
    612619      REAL radsol(klon)       ! ray. net au sol (Solaire+IR) W/m2
    613620      REAL albedo(klon)       ! albedo de la surface
     621      REAL alblw(klon)
    614622      REAL snow(klon)         ! hauteur de neige
    615623      REAL qsol(klon)         ! humidite de la surface
     
    825833     e ocean, npas, nexca, zmasq,
    826834     s evap, fluxsens, fluxlat, dflux_l, dflux_s,             
    827      s tsol_rad, tsurf_new, alb_new, emis_new, z0_new,
     835     s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new,
    828836     s pctsrf_new, agesno)
    829837
     
    10801088c contre-gradient pour la chaleur sensible: Kelvin/metre
    10811089      REAL gamt(2:klev)
     1090c essai qsurf
     1091      real qsurf(klon)
     1092      real friv, frih
    10821093c
    10831094      LOGICAL appel1er
     
    11161127         itop(i) = 0
    11171128      ENDDO
     1129
     1130      do i = 1, knon
     1131        qsurf(i) = qsatl(ts(i))/paprs(i,1)
     1132      enddo
     1133
    11181134c
    11191135c Prescrire la valeur de contre-gradient
     
    11491165         zdu2=max(cepdu2,u(i,1)**2+v(i,1)**2)
    11501166         zdphi=zgeop(i,1)
    1151          ztsolv = ts(i) * (1.0+RETV*q(i,1)) ! qsol approx = q(i,1)
     1167c         ztsolv = ts(i) * (1.0+RETV*q(i,1)) ! qsol approx = q(i,1)
     1168         ztsolv = ts(i) * (1.0+RETV*qsurf(i))
    11521169         ztvd=(t(i,1)+zdphi/RCPD/(1.+RVTMP2*q(i,1)))
    11531170     .       *(1.+RETV*q(i,1))
     
    11571174           IF (.NOT.zxli) THEN
    11581175           zscf=SQRT(1.+cd*ABS(zri(i)))
    1159            zcfm1(i) = zcdn/(1.+2.0*cb*zri(i)/zscf)
    1160            zcfh1(i) = zcdn/(1.+3.0*cb*zri(i)*zscf)
     1176           FRIV = AMAX1(1. / (1.+2.*CB*zri(i)/ZSCF), 0.1)
     1177!           zcfm1(i) = zcdn/(1.+2.0*cb*zri(i)/ zscf)
     1178           zcfm1(i) = zcdn * FRIV
     1179           FRIH = AMAX1(1./ (1.+3.*CB*zri(i)*ZSCF), 0.1 )
     1180!           zcfh1(i) = zcdn/(1.+3.0*cb*zri(i)*zscf)
     1181           zcfh1(i) = zcdn * FRIH
    11611182           pcfm(i,1) = zcfm1(i)
    11621183           pcfh(i,1) = zcfh1(i)
     
    11691190           zucf=1./(1.+3.0*cb*cc*zcdn*SQRT(ABS(zri(i))
    11701191     .              *(1.0+zgeop(i,1)/(RG*rugos(i)))))
    1171            zcfm2(i) = zcdn*(1.-2.0*cb*zri(i)*zucf)
    1172            zcfh2(i) = zcdn*(1.-3.0*cb*zri(i)*zucf)
     1192           zcfm2(i) = zcdn*amax1((1.-2.0*cb*zri(i)*zucf),0.1)
     1193           zcfh2(i) = zcdn*amax1((1.-3.0*cb*zri(i)*zucf),0.1)
    11731194           pcfm(i,1) = zcfm2(i)
    11741195           pcfh(i,1) = zcfh2(i)
Note: See TracChangeset for help on using the changeset viewer.