26 |
USE suphec_m, ONLY : rcpd, rd, rg, rkappa |
USE suphec_m, ONLY : rcpd, rd, rg, rkappa |
27 |
|
|
28 |
! Arguments: |
! Arguments: |
29 |
INTEGER knon |
INTEGER, intent(in):: knon |
30 |
REAL, intent(in):: dtime ! intervalle du temps (s) |
REAL, intent(in):: dtime ! intervalle du temps (s) |
31 |
real, intent(in):: date0 |
real, intent(in):: date0 |
32 |
REAL u1lay(klon) ! vitesse u de la 1ere couche (m/s) |
REAL u1lay(klon) ! vitesse u de la 1ere couche (m/s) |
33 |
REAL v1lay(klon) ! vitesse v de la 1ere couche (m/s) |
REAL v1lay(klon) ! vitesse v de la 1ere couche (m/s) |
34 |
REAL coef(klon, klev) ! le coefficient d'echange (m**2/s) |
|
35 |
! multiplie par le cisaillement du |
REAL, intent(in):: coef(:, :) ! (knon, klev) |
36 |
! vent (dV/dz); la premiere valeur |
! Le coefficient d'echange (m**2/s) multiplie par le cisaillement |
37 |
! indique la valeur de Cdrag (sans unite) |
! du vent (dV/dz). La premiere valeur indique la valeur de Cdrag |
38 |
|
! (sans unite). |
39 |
|
|
40 |
REAL t(klon, klev) ! temperature (K) |
REAL t(klon, klev) ! temperature (K) |
41 |
REAL q(klon, klev) ! humidite specifique (kg/kg) |
REAL q(klon, klev) ! humidite specifique (kg/kg) |
42 |
REAL ts(klon) ! temperature du sol (K) |
REAL ts(klon) ! temperature du sol (K) |
270 |
peqBcoef = 0. |
peqBcoef = 0. |
271 |
p1lay =0. |
p1lay =0. |
272 |
|
|
|
! do i = 1, knon |
|
273 |
petAcoef(1:knon) = zx_ch(1:knon, 1) |
petAcoef(1:knon) = zx_ch(1:knon, 1) |
274 |
peqAcoef(1:knon) = zx_cq(1:knon, 1) |
peqAcoef(1:knon) = zx_cq(1:knon, 1) |
275 |
petBcoef(1:knon) = zx_dh(1:knon, 1) |
petBcoef(1:knon) = zx_dh(1:knon, 1) |
276 |
peqBcoef(1:knon) = zx_dq(1:knon, 1) |
peqBcoef(1:knon) = zx_dq(1:knon, 1) |
277 |
tq_cdrag(1:knon) =coef(1:knon, 1) |
tq_cdrag(1:knon) =coef(:knon, 1) |
278 |
temp_air(1:knon) =t(1:knon, 1) |
temp_air(1:knon) =t(1:knon, 1) |
279 |
epot_air(1:knon) =local_h(1:knon, 1) |
epot_air(1:knon) =local_h(1:knon, 1) |
280 |
spechum(1:knon)=q(1:knon, 1) |
spechum(1:knon)=q(1:knon, 1) |
281 |
p1lay(1:knon) = pplay(1:knon, 1) |
p1lay(1:knon) = pplay(1:knon, 1) |
282 |
zlev1(1:knon) = delp(1:knon, 1) |
zlev1(1:knon) = delp(1:knon, 1) |
|
! swnet = swdown * (1. - albedo) |
|
283 |
|
|
|
!IM swdown=flux SW incident sur terres |
|
|
!IM swdown=flux SW net sur les autres surfaces |
|
|
!IM swdown(1:knon) = swnet(1:knon) |
|
284 |
if(nisurf.eq.is_ter) THEN |
if(nisurf.eq.is_ter) THEN |
285 |
swdown(1:knon) = swnet(1:knon)/(1-albedo(1:knon)) |
swdown(1:knon) = swnet(1:knon)/(1-albedo(1:knon)) |
286 |
else |
else |
287 |
swdown(1:knon) = swnet(1:knon) |
swdown(1:knon) = swnet(1:knon) |
288 |
endif |
endif |
|
! enddo |
|
289 |
ccanopy = co2_ppm |
ccanopy = co2_ppm |
290 |
|
|
291 |
CALL interfsurf_hq(itime, dtime, date0, jour, rmu0, & |
CALL interfsurf_hq(itime, dtime, date0, jour, rmu0, & |