--- trunk/Sources/phylmd/clqh.f 2016/02/05 16:02:34 175 +++ trunk/Sources/phylmd/clqh.f 2016/06/08 12:23:41 202 @@ -4,41 +4,37 @@ contains - SUBROUTINE clqh(dtime, itime, jour, debut, rlat, knon, nisurf, knindex, & - pctsrf, tsoil, qsol, rmu0, co2_ppm, rugos, rugoro, u1lay, v1lay, coef, & - t, q, ts, paprs, pplay, delp, radsol, albedo, snow, qsurf, & - precip_rain, precip_snow, fder, fluxlat, pctsrf_new, agesno, d_t, d_q, & - d_ts, z0_new, flux_t, flux_q, dflux_s, dflux_l, fqcalving, ffonte, & - run_off_lic_0) + SUBROUTINE clqh(dtime, jour, debut, rlat, knon, nisurf, knindex, & + tsoil, qsol, rmu0, rugos, rugoro, u1lay, v1lay, coef, t, q, ts, paprs, & + pplay, delp, radsol, albedo, snow, qsurf, precip_rain, precip_snow, & + fder, fluxlat, pctsrf_new_sic, agesno, d_t, d_q, d_ts, z0_new, flux_t, & + flux_q, dflux_s, dflux_l, fqcalving, ffonte, run_off_lic_0) ! Author: Z. X. Li (LMD/CNRS) ! Date: 1993/08/18 ! Objet : diffusion verticale de "q" et de "h" USE conf_phys_m, ONLY: iflag_pbl - USE dimens_m, ONLY: iim, jjm USE dimphy, ONLY: klev, klon USE dimsoil, ONLY: nsoilmx - USE indicesol, ONLY: is_ter, nbsrf + USE indicesol, ONLY: nbsrf USE interfsurf_hq_m, ONLY: interfsurf_hq USE suphec_m, ONLY: rcpd, rd, rg, rkappa REAL, intent(in):: dtime ! intervalle du temps (s) - integer, intent(in):: itime integer, intent(in):: jour ! jour de l'annee en cours logical, intent(in):: debut real, intent(in):: rlat(klon) INTEGER, intent(in):: knon integer, intent(in):: nisurf integer, intent(in):: knindex(:) ! (knon) - real, intent(in):: pctsrf(klon, nbsrf) + REAL tsoil(klon, nsoilmx) REAL, intent(inout):: qsol(klon) ! column-density of water in soil, in kg m-2 real, intent(in):: rmu0(klon) ! cosinus de l'angle solaire zenithal - REAL, intent(in):: co2_ppm ! taux CO2 atmosphere real rugos(klon) ! rugosite REAL rugoro(klon) REAL u1lay(klon) ! vitesse u de la 1ere couche (m / s) @@ -57,7 +53,7 @@ REAL delp(klon, klev) ! epaisseur de couche en pression (Pa) REAL radsol(klon) ! ray. net au sol (Solaire+IR) W / m2 REAL, intent(inout):: albedo(:) ! (knon) albedo de la surface - REAL snow(klon) ! hauteur de neige + REAL, intent(inout):: snow(klon) ! hauteur de neige REAL qsurf(klon) ! humidite de l'air au dessus de la surface real, intent(in):: precip_rain(klon) @@ -68,7 +64,7 @@ real, intent(inout):: fder(klon) real fluxlat(klon) - real pctsrf_new(klon, nbsrf) + real, intent(in):: pctsrf_new_sic(:) ! (klon) REAL, intent(inout):: agesno(:) ! (knon) REAL d_t(klon, klev) ! incrementation de "t" REAL d_q(klon, klev) ! incrementation de "q" @@ -104,7 +100,6 @@ REAL zx_coef(klon, klev) REAL local_h(klon, klev) ! enthalpie potentielle REAL local_q(klon, klev) - REAL local_ts(klon) REAL psref(klon) ! pression de reference pour temperature potent. REAL zx_pkh(klon, klev), zx_pkf(klon, klev) @@ -115,9 +110,7 @@ REAL z_gamaq(klon, 2:klev), z_gamah(klon, 2:klev) REAL zdelz - real zlev1(klon) real temp_air(klon), spechum(klon) - real epot_air(klon), ccanopy(klon) real tq_cdrag(klon), petAcoef(klon), peqAcoef(klon) real petBcoef(klon), peqBcoef(klon) real p1lay(klon) @@ -150,7 +143,6 @@ DO i = 1, knon psref(i) = paprs(i, 1) !pression de reference est celle au sol - local_ts(i) = ts(i) ENDDO DO k = 1, klev DO i = 1, knon @@ -244,20 +236,15 @@ peqBcoef(1:knon) = zx_dq(1:knon, 1) tq_cdrag(1:knon) =coef(:knon, 1) temp_air(1:knon) =t(1:knon, 1) - epot_air(1:knon) =local_h(1:knon, 1) spechum(1:knon)=q(1:knon, 1) p1lay(1:knon) = pplay(1:knon, 1) - zlev1(1:knon) = delp(1:knon, 1) - - ccanopy = co2_ppm - CALL interfsurf_hq(itime, dtime, jour, rmu0, nisurf, knon, knindex, & - pctsrf, rlat, debut, nsoilmx, tsoil, qsol, u1lay, v1lay, temp_air, & - spechum, tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, & - precip_rain, precip_snow, fder, rugos, rugoro, snow, qsurf, & - ts(:knon), p1lay, psref, radsol, evap, fluxsens, fluxlat, dflux_l, & - dflux_s, tsurf_new, albedo, z0_new, pctsrf_new, agesno, fqcalving, & - ffonte, run_off_lic_0) + CALL interfsurf_hq(dtime, jour, rmu0, nisurf, knon, knindex, rlat, debut, & + nsoilmx, tsoil, qsol, u1lay, v1lay, temp_air, spechum, tq_cdrag, & + petAcoef, peqAcoef, petBcoef, peqBcoef, precip_rain, precip_snow, & + fder, rugos, rugoro, snow, qsurf, ts(:knon), p1lay, psref, radsol, & + evap, fluxsens, fluxlat, dflux_l, dflux_s, tsurf_new, albedo, & + z0_new, pctsrf_new_sic, agesno, fqcalving, ffonte, run_off_lic_0) flux_t(:knon, 1) = fluxsens(:knon) flux_q(:knon, 1) = - evap(:knon)