- Timestamp:
- Oct 19, 2001, 12:29:20 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/clmain.F
r276 r280 8 8 . ok_veget, ocean, npas, nexca, ts, 9 9 . soil_model,ftsoil, 10 . paprs,pplay,radsol,snow,qsol,evap,albe,fluxlat, 10 . paprs,pplay,radsol,snow,qsol,evap,albe,alblw, 11 . fluxlat, 11 12 . rain_f, snow_f, solsw, sollw, sollwdown, fder, 12 13 . rlon, rlat, cufi, cvfi, rugos, … … 112 113 REAL evap(klon,nbsrf) 113 114 REAL albe(klon,nbsrf) 115 REAL alblw(klon,nbsrf) 114 116 c$$$ PB 115 117 REAL fluxlat(klon,nbsrf) … … 135 137 REAL yts(klon), yrugos(klon), ypct(klon), yz0_new(klon) 136 138 REAL yalb(klon) 139 REAL yalblw(klon) 137 140 REAL yu1(klon), yv1(klon) 138 141 real ysnow(klon), yqsol(klon), yagesno(klon) … … 258 261 yqsol = 0.0 259 262 yalb = 0.0 263 yalblw = 0.0 260 264 yrain_f = 0.0 261 265 ysnow_f = 0.0 … … 370 374 yqsol(j) = qsol(i,nsrf) 371 375 yalb(j) = albe(i,nsrf) 376 yalblw(j) = alblw(i,nsrf) 372 377 yrain_f(j) = rain_f(i) 373 378 ysnow_f(j) = snow_f(i) … … 452 457 e yu1, yv1, ycoefh, 453 458 e yt,yq,yts,ypaprs,ypplay, 454 e ydelp,yrads,yalb, y snow, yqsol,459 e ydelp,yrads,yalb, yalblw, ysnow, yqsol, 455 460 e yrain_f, ysnow_f, yfder, ytaux, ytauy, 456 461 c$$$ e ysollw, ysolsw, … … 499 504 c 500 505 albe(:, nsrf) = 0. 506 alblw(:, nsrf) = 0. 501 507 snow(:, nsrf) = 0. 502 508 qsol(:, nsrf) = 0. … … 507 513 d_ts(i,nsrf) = y_d_ts(j) 508 514 albe(i,nsrf) = yalb(j) 515 alblw(i,nsrf) = yalblw(j) 509 516 snow(i,nsrf) = ysnow(j) 510 517 qsol(i,nsrf) = yqsol(j) … … 572 579 e u1lay,v1lay,coef, 573 580 e t,q,ts,paprs,pplay, 574 e delp,radsol,albedo, snow,qsol,581 e delp,radsol,albedo,alblw,snow,qsol, 575 582 e precip_rain, precip_snow, fder, taux, tauy, 576 583 $ sollw, sollwdown, swdown,fluxlat, … … 612 619 REAL radsol(klon) ! ray. net au sol (Solaire+IR) W/m2 613 620 REAL albedo(klon) ! albedo de la surface 621 REAL alblw(klon) 614 622 REAL snow(klon) ! hauteur de neige 615 623 REAL qsol(klon) ! humidite de la surface … … 825 833 e ocean, npas, nexca, zmasq, 826 834 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, 828 836 s pctsrf_new, agesno) 829 837 … … 1080 1088 c contre-gradient pour la chaleur sensible: Kelvin/metre 1081 1089 REAL gamt(2:klev) 1090 c essai qsurf 1091 real qsurf(klon) 1092 real friv, frih 1082 1093 c 1083 1094 LOGICAL appel1er … … 1116 1127 itop(i) = 0 1117 1128 ENDDO 1129 1130 do i = 1, knon 1131 qsurf(i) = qsatl(ts(i))/paprs(i,1) 1132 enddo 1133 1118 1134 c 1119 1135 c Prescrire la valeur de contre-gradient … … 1149 1165 zdu2=max(cepdu2,u(i,1)**2+v(i,1)**2) 1150 1166 zdphi=zgeop(i,1) 1151 ztsolv = ts(i) * (1.0+RETV*q(i,1)) ! qsol approx = q(i,1) 1167 c ztsolv = ts(i) * (1.0+RETV*q(i,1)) ! qsol approx = q(i,1) 1168 ztsolv = ts(i) * (1.0+RETV*qsurf(i)) 1152 1169 ztvd=(t(i,1)+zdphi/RCPD/(1.+RVTMP2*q(i,1))) 1153 1170 . *(1.+RETV*q(i,1)) … … 1157 1174 IF (.NOT.zxli) THEN 1158 1175 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 1161 1182 pcfm(i,1) = zcfm1(i) 1162 1183 pcfh(i,1) = zcfh1(i) … … 1169 1190 zucf=1./(1.+3.0*cb*cc*zcdn*SQRT(ABS(zri(i)) 1170 1191 . *(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) 1173 1194 pcfm(i,1) = zcfm2(i) 1174 1195 pcfh(i,1) = zcfh2(i)
Note: See TracChangeset
for help on using the changeset viewer.