--- trunk/phylmd/physiq.f 2018/08/02 17:23:07 301 +++ trunk/phylmd/physiq.f 2018/09/06 15:51:09 304 @@ -150,7 +150,6 @@ REAL, save:: ftsoil(klon, nsoilmx, nbsrf) ! soil temperature of surface fraction - REAL, save:: fevap(klon, nbsrf) ! evaporation REAL fluxlat(klon, nbsrf) REAL, save:: fqsurf(klon, nbsrf) @@ -212,9 +211,9 @@ REAL rain_tiedtke(klon), snow_tiedtke(klon) REAL evap(klon) ! flux d'\'evaporation au sol - real devap(klon) ! derivative of the evaporation flux at the surface + real dflux_q(klon) ! derivative of the evaporation flux at the surface REAL sens(klon) ! flux de chaleur sensible au sol - real dsens(klon) ! derivee du flux de chaleur sensible au sol + real dflux_t(klon) ! derivee du flux de chaleur sensible au sol REAL, save:: dlw(klon) ! derivative of infra-red flux REAL bils(klon) ! bilan de chaleur au sol REAL fder(klon) ! Derive de flux (sensible et latente) @@ -446,10 +445,10 @@ frugs = 0. CALL phyetat0(pctsrf, ftsol, ftsoil, fqsurf, qsol, fsnow, falbe, & - fevap, rain_fall, snow_fall, solsw, sollw, dlw, radsol, frugs, & - agesno, zmea, zstd, zsig, zgam, zthe, zpic, zval, t_ancien, & - q_ancien, ancien_ok, rnebcon, ratqs, clwcon, run_off_lic_0, sig1, & - w01, ncid_startphy) + rain_fall, snow_fall, solsw, sollw, dlw, radsol, frugs, agesno, & + zmea, zstd, zsig, zgam, zthe, zpic, zval, t_ancien, q_ancien, & + ancien_ok, rnebcon, ratqs, clwcon, run_off_lic_0, sig1, w01, & + ncid_startphy) ! ATTENTION : il faudra a terme relire q2 dans l'etat initial q2 = 1e-8 @@ -553,9 +552,9 @@ CALL pbl_surface(pctsrf, t_seri, q_seri, u_seri, v_seri, julien, mu0, & ftsol, cdmmax, cdhmax, ftsoil, qsol, paprs, play, fsnow, fqsurf, & - fevap, falbe, fluxlat, rain_fall, snow_fall, fsolsw, fsollw, frugs, & - agesno, rugoro, d_t_vdf, d_q_vdf, d_u_vdf, d_v_vdf, d_ts, flux_t, & - flux_q, flux_u, flux_v, cdragh, cdragm, q2, dsens, devap, coefh, t2m, & + falbe, fluxlat, rain_fall, snow_fall, fsolsw, fsollw, frugs, agesno, & + rugoro, d_t_vdf, d_q_vdf, d_u_vdf, d_v_vdf, d_ts, flux_t, flux_q, & + flux_u, flux_v, cdragh, cdragm, q2, dflux_t, dflux_q, coefh, t2m, & q2m, u10m_srf, v10m_srf, pblh, capCL, oliqCL, cteiCL, pblT, therm, & plcl, fqcalving, ffonte, run_off_lic_0) @@ -563,7 +562,7 @@ sens = - sum(flux_t * pctsrf, dim = 2) evap = - sum(flux_q * pctsrf, dim = 2) - fder = dlw + dsens + devap + fder = dlw + dflux_t + dflux_q DO k = 1, llm DO i = 1, klon @@ -574,10 +573,8 @@ ENDDO ENDDO - ! Update surface temperature: - call assert(abs(sum(pctsrf, dim = 2) - 1.) <= EPSFRA, 'physiq: pctsrf') - ftsol = ftsol + d_ts + ftsol = ftsol + d_ts ! update surface temperature tsol = sum(ftsol * pctsrf, dim = 2) zxfluxlat = sum(fluxlat * pctsrf, dim = 2) zt2m = sum(t2m * pctsrf, dim = 2) @@ -1058,11 +1055,10 @@ IF (lafin) then call NF95_CLOSE(ncid_startphy) - CALL phyredem(pctsrf, ftsol, ftsoil, fqsurf, qsol, & - fsnow, falbe, fevap, rain_fall, snow_fall, solsw, sollw, dlw, & - radsol, frugs, agesno, zmea, zstd, zsig, zgam, zthe, zpic, zval, & - t_ancien, q_ancien, rnebcon, ratqs, clwcon, run_off_lic_0, sig1, & - w01) + CALL phyredem(pctsrf, ftsol, ftsoil, fqsurf, qsol, fsnow, falbe, & + rain_fall, snow_fall, solsw, sollw, dlw, radsol, frugs, agesno, & + zmea, zstd, zsig, zgam, zthe, zpic, zval, t_ancien, q_ancien, & + rnebcon, ratqs, clwcon, run_off_lic_0, sig1, w01) end IF firstcal = .FALSE.