Changeset 156 for LMDZ.3.3/branches/rel-LF
- Timestamp:
- Nov 10, 2000, 11:45:53 AM (24 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/clmain.F
r150 r156 43 43 c pplay----input-R- pression au milieu de couche (Pa) 44 44 c radsol---input-R- flux radiatif net (positif vers le sol) en W/m**2 45 c capsol---input-R- inversion de l'effective capacite du sol (J/m2/K)46 c beta-----input-R- coefficient de l'evaporation reelle (0 a 1)47 c dif_grnd-input-R- coeff. de diffusion (chaleur) vers le sol profond48 45 c rlat-----input-R- latitude en degree 49 46 c rugos----input-R- longeur de rugosite (en m) … … 74 71 #include "indicesol.h" 75 72 c 76 LOGICAL soil_model77 73 c 78 74 REAL dtime … … 121 117 c====================================================================== 122 118 REAL yts(klon), yrugos(klon), ypct(klon), yz0_new(klon) 123 REAL y cal(klon), ybeta(klon), ydif(klon), yalb(klon),yevap(klon)119 REAL yalb(klon),yevap(klon) 124 120 REAL yu1(klon), yv1(klon) 125 121 real ysnow(klon), yqsol(klon) 126 122 real yrain_f(klon), ysnow_f(klon) 127 real ysollw(klon), ysolsw(klon) , ysolswnet(klon)123 real ysollw(klon), ysolsw(klon) 128 124 real yfder(klon), ytaux(klon), ytauy(klon) 129 125 REAL yrugm(klon), yrads(klon) … … 135 131 REAL y_dflux_t(klon), y_dflux_q(klon) 136 132 REAL ycoefh(klon,klev), ycoefm(klon,klev) 137 REAL ygamt(klon,2:klev) ! contre-gradient pour temperature138 REAL ygamq(klon,2:klev) ! contre-gradient pour humidite139 133 REAL yu(klon,klev), yv(klon,klev) 140 134 REAL yt(klon,klev), yq(klon,klev) … … 149 143 LOGICAL ok_nonloc 150 144 PARAMETER (ok_nonloc=.FALSE.) 151 REAL y_cd_h(klon), y_cd_m(klon)152 145 REAL ycoefm0(klon,klev), ycoefh0(klon,klev) 153 146 c … … 155 148 REAL u1lay(klon), v1lay(klon) 156 149 REAL delp(klon,klev) 157 REAL capsol(klon), beta(klon), dif_grnd(klon)158 REAL cal(klon)159 REAL soilcap(klon,nbsrf), soilflux(klon,nbsrf)160 150 REAL totalflu(klon) 161 151 INTEGER i, k, nsrf … … 194 184 zv1(i) = 0.0 195 185 ENDDO 186 ypct = 0.0 187 yts = 0.0 188 ysnow = 0.0 189 yevap = 0.0 190 yqsol = 0.0 191 yalb = 0.0 192 yrain_f = 0.0 193 ysnow_f = 0.0 194 yfder = 0.0 195 ytaux = 0.0 196 ytauy = 0.0 197 ysolsw = 0.0 198 ysollw = 0.0 199 yrugos = 0.0 200 yu1 = 0.0 201 yv1 = 0.0 202 yrads = 0.0 203 ypaprs = 0.0 204 ypaprs = 0.0 205 ypplay = 0.0 206 ydelp = 0.0 207 yu = 0.0 208 yv = 0.0 209 yt = 0.0 210 yq = 0.0 211 pctsrf_new = 0.0 212 y_flux_u = 0.0 213 y_flux_v = 0.0 214 196 215 DO nsrf = 1, nbsrf 197 216 DO i = 1, klon … … 238 257 239 258 DO 99999 nsrf = 1, nbsrf 240 c241 c prescrire les proprietes du sol:242 c CALL calbeta(dtime,nsrf,snow,qsol, beta,capsol,dif_grnd)243 c IF (.NOT.soil_model) THEN244 c DO i = 1, klon245 c cal(i) = RCPD * capsol(i)246 c totalflu(i) = radsol(i)247 c ENDDO248 c ELSE249 c DO i = 1, klon250 c totalflu(i) = soilflux(i,nsrf) + radsol(i)251 c IF (nsrf.EQ.is_oce) THEN252 c cal(i) = 0.0253 c ELSE254 c cal(i) = RCPD / soilcap(i,nsrf)255 c ENDIF256 c ENDDO257 c ENDIF258 c259 259 totalflu = radsol 260 260 … … 339 339 e knon, nsrf, ni, pctsrf, 340 340 e ok_veget, ocean, npas, nexca, 341 e rmu0, 341 e rmu0, yrugos, 342 342 e yu1, yv1, ycoefh, 343 343 e yt,yq,yts,ypaprs,ypplay, … … 437 437 e knon, nisurf, knindex, pctsrf, 438 438 e ok_veget, ocean, npas, nexca, 439 e rmu0, 439 e rmu0, rugos, 440 440 e u1lay,v1lay,coef, 441 441 e t,q,ts,paprs,pplay, … … 469 469 c vent (dV/dz); la premiere valeur 470 470 c indique la valeur de Cdrag (sans unite) 471 REAL cal(klon) ! Cp/cal indique la capacite calorifique472 c surfacique du sol473 REAL beta(klon) ! evap. reelle / evapotranspiration474 REAL dif_grnd(klon) ! coeff. diffusion vers le sol profond475 471 REAL t(klon,klev) ! temperature (K) 476 472 REAL q(klon,klev) ! humidite specifique (kg/kg) … … 488 484 integer jour ! jour de l'annee en cours 489 485 real rmu0(klon) ! cosinus de l'angle solaire zenithal 486 real rugos(klon) ! rugosite 490 487 integer knindex(klon) 491 488 real pctsrf(klon,nbsrf) … … 505 502 REAL dflux_s(klon) ! derivee du flux sensible dF/dTs 506 503 REAL dflux_l(klon) ! derivee du flux latent dF/dTs 507 REAL dflux_g(klon) ! derivee du flux du sol profond dF/dTs508 504 c====================================================================== 509 505 REAL t_grnd ! temperature de rappel pour glace de mer … … 513 509 c====================================================================== 514 510 INTEGER i, k 515 REAL zx_a516 REAL zx_b517 REAL zx_qs518 REAL zx_dq_s_dh519 REAL zx_h_grnd520 REAL zx_cq0(klon)521 REAL zx_dq0(klon)522 511 REAL zx_cq(klon,klev) 523 512 REAL zx_dq(klon,klev) … … 527 516 REAL zx_buf2(klon) 528 517 REAL zx_coef(klon,klev) 529 REAL zx_q_0(klon)530 REAL zx_h_ts(klon)531 REAL zx_sl(klon)532 518 REAL local_h(klon,klev) ! enthalpie potentielle 533 519 REAL local_q(klon,klev) … … 543 529 REAL zdelz 544 530 c====================================================================== 545 C Variables intermediaires pour le calcul des fluxs a la surface546 real zx_mh(klon), zx_nh(klon), zx_oh(klon)547 real zx_mq(klon), zx_nq(klon), zx_oq(klon)548 real zx_k1(klon), zx_dq_s_dt(klon)549 real zx_qsat(klon)550 c======================================================================551 REAL zcor, zdelta, zcvm5552 531 logical contreg 553 532 parameter (contreg=.true.) … … 563 542 real tq_cdrag(klon), petAcoef(klon), peqAcoef(klon) 564 543 real petBcoef(klon), peqBcoef(klon) 565 real lwdown(klon), swnet(klon), swdown(klon) , ps(klon)544 real lwdown(klon), swnet(klon), swdown(klon) 566 545 real p1lay(klon) 567 real coef1lay(klon)568 546 569 547 ! Parametres de sortie … … 703 681 e tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, 704 682 e precip_rain, precip_snow, lwdown, swnet, swdown, 705 e fder, taux, tauy, 683 e fder, taux, tauy, rugos, 706 684 e albedo, snow, qsol, 707 685 e ts, p1lay, psref, radsol, … … 891 869 c ts-------input-R- temperature du sol (en Kelvin) 892 870 c rugos----input-R- longeur de rugosite (en m) 893 c xlat-----input-R- latitude en degree894 871 c u--------input-R- vitesse u 895 872 c v--------input-R- vitesse v … … 913 890 REAL u(klon,klev), v(klon,klev), t(klon,klev), q(klon,klev) 914 891 REAL rugos(klon) 915 REAL xlat(klon)916 892 c 917 893 REAL pcfm(klon,klev), pcfh(klon,klev) … … 1293 1269 c Calculer quelques parametres pour appliquer la couche limite 1294 1270 c ------------------------------------------------------------ 1295 !#include "dimensions.h"1296 !#include "dimphy.h"1271 #include "dimensions.h" 1272 #include "dimphy.h" 1297 1273 #include "YOMCST.h" 1298 1274 #include "indicesol.h" … … 1311 1287 c 1312 1288 REAL dtime 1313 REAL snow(k non,nbsrf), qsol(knon,nbsrf)1289 REAL snow(klon), qsol(klon) 1314 1290 INTEGER indice, knon 1315 1291 C 1316 REAL vbeta(knon) 1317 REAL vcal(knon) 1318 REAL vdif(knon) 1319 C 1292 REAL vbeta(klon) 1293 REAL vcal(klon) 1294 REAL vdif(klon) 1295 C 1296 1320 1297 IF (indice.EQ.is_oce) THEN 1321 1298 DO i = 1, knon … … 1329 1306 DO i = 1, knon 1330 1307 vcal(i) = calice 1331 IF (snow(i ,is_sic) .GT. 0.0) vcal(i) = calsno1308 IF (snow(i) .GT. 0.0) vcal(i) = calsno 1332 1309 vbeta(i) = 1.0 1333 1310 vdif(i) = 1.0/tau_gl … … 1339 1316 DO i = 1, knon 1340 1317 vcal(i) = calsol 1341 IF (snow(i ,is_ter) .GT. 0.0) vcal(i) = calsno1342 vbeta(i) = MIN(2.0*qsol(i ,is_ter)/mx_eau_sol, 1.0)1318 IF (snow(i) .GT. 0.0) vcal(i) = calsno 1319 vbeta(i) = MIN(2.0*qsol(i)/mx_eau_sol, 1.0) 1343 1320 vdif(i) = 0.0 1344 1321 ENDDO … … 1348 1325 DO i = 1, knon 1349 1326 vcal(i) = calice 1350 IF (snow(i ,is_lic) .GT. 0.0) vcal(i) = calsno1327 IF (snow(i) .GT. 0.0) vcal(i) = calsno 1351 1328 vbeta(i) = 1.0 1352 1329 vdif(i) = 0.0
Note: See TracChangeset
for help on using the changeset viewer.