--- trunk/phylmd/clmain.f 2014/07/07 17:45:21 101 +++ trunk/phylmd/clmain.f 2014/12/18 17:30:24 118 @@ -38,6 +38,7 @@ USE dimsoil, ONLY: nsoilmx use hbtm_m, only: hbtm USE indicesol, ONLY: epsfra, is_lic, is_oce, is_sic, is_ter, nbsrf + use stdlevvar_m, only: stdlevvar USE suphec_m, ONLY: rd, rg, rkappa use ustarhb_m, only: ustarhb use vdif_kcay_m, only: vdif_kcay @@ -56,11 +57,13 @@ INTEGER, INTENT(IN):: jour ! jour de l'annee en cours REAL, intent(in):: rmu0(klon) ! cosinus de l'angle solaire zenithal REAL, intent(in):: co2_ppm ! taux CO2 atmosphere - REAL, INTENT(IN):: ts(klon, nbsrf) ! input-R- temperature du sol (en Kelvin) + REAL, INTENT(IN):: ts(klon, nbsrf) ! temperature du sol (en Kelvin) REAL, INTENT(IN):: cdmmax, cdhmax ! seuils cdrm, cdrh REAL, INTENT(IN):: ksta, ksta_ter LOGICAL, INTENT(IN):: ok_kzmin - REAL ftsoil(klon, nsoilmx, nbsrf) + + REAL, INTENT(inout):: ftsoil(klon, nsoilmx, nbsrf) + ! soil temperature of surface fraction REAL, INTENT(inout):: qsol(klon) ! column-density of water in soil, in kg m-2 @@ -99,8 +102,7 @@ REAL, intent(out):: d_u(klon, klev), d_v(klon, klev) ! changement pour "u" et "v" - REAL d_ts(klon, nbsrf) - ! d_ts-----output-R- le changement pour "ts" + REAL, intent(out):: d_ts(klon, nbsrf) ! le changement pour "ts" REAL flux_t(klon, klev, nbsrf), flux_q(klon, klev, nbsrf) ! flux_t---output-R- flux de chaleur sensible (CpT) J/m**2/s (W/m**2) @@ -305,11 +307,9 @@ y_dflux_q = 0. ytsoil = 999999. yrugoro = 0. - ! -- LOOP yu10mx = 0. yu10my = 0. ywindsp = 0. - ! -- LOOP d_ts = 0. yfluxlat = 0. flux_t = 0. @@ -477,13 +477,14 @@ ypplay, ydelp, y_d_v, y_flux_v) ! calculer la diffusion de "q" et de "h" - CALL clqh(dtime, itap, jour, debut, rlat, knon, nsrf, ni, pctsrf, & - ytsoil, yqsol, rmu0, co2_ppm, yrugos, yrugoro, & - yu1, yv1, coefh(:knon, :), yt, yq, yts, ypaprs, ypplay, ydelp, & + CALL clqh(dtime, itap, jour, debut, rlat, knon, nsrf, ni(:knon), & + pctsrf, ytsoil, yqsol, rmu0, co2_ppm, yrugos, yrugoro, yu1, & + yv1, coefh(:knon, :), yt, yq, yts, ypaprs, ypplay, ydelp, & yrads, yalb, yalblw, ysnow, yqsurf, yrain_f, ysnow_f, yfder, & - ysolsw, yfluxlat, pctsrf_new, yagesno, y_d_t, y_d_q, y_d_ts, & - yz0_new, y_flux_t, y_flux_q, y_dflux_t, y_dflux_q, & - y_fqcalving, y_ffonte, y_run_off_lic_0, y_flux_o, y_flux_g) + ysolsw, yfluxlat, pctsrf_new, yagesno, y_d_t, y_d_q, & + y_d_ts(:knon), yz0_new, y_flux_t, y_flux_q, y_dflux_t, & + y_dflux_q, y_fqcalving, y_ffonte, y_run_off_lic_0, y_flux_o, & + y_flux_g) ! calculer la longueur de rugosite sur ocean yrugm = 0. @@ -556,7 +557,7 @@ run_off_lic_0(i) = y_run_off_lic_0(j) END DO END IF - !$$$ PB ajout pour soil + ftsoil(:, :, nsrf) = 0. DO k = 1, nsoilmx DO j = 1, knon