8 |
contains |
contains |
9 |
|
|
10 |
SUBROUTINE phytrac(julien, gmtime, firstcal, lafin, pdtphys, t_seri, paprs, & |
SUBROUTINE phytrac(julien, gmtime, firstcal, lafin, pdtphys, t_seri, paprs, & |
11 |
pplay, pmfu, pmfd, pde_u, pen_d, coefh, fm_therm, entr_therm, yu1, & |
pplay, pmfu, pmfd, pde_u, pen_d, coefh, cdragh, fm_therm, entr_therm, & |
12 |
yv1, ftsol, pctsrf, frac_impa, frac_nucl, da, phi, mp, upwd, dnwd, & |
yu1, yv1, ftsol, pctsrf, frac_impa, frac_nucl, da, phi, mp, upwd, dnwd, & |
13 |
tr_seri, zmasse, ncid_startphy) |
tr_seri, zmasse, ncid_startphy) |
14 |
|
|
15 |
! From phylmd/phytrac.F, version 1.15, 2006/02/21 08:08:30 (SVN |
! From phylmd/phytrac.F, version 1.15, 2006/02/21 08:08:30 (SVN |
35 |
USE conf_gcm_m, ONLY: lmt_pas |
USE conf_gcm_m, ONLY: lmt_pas |
36 |
use ctherm, only: iflag_thermals |
use ctherm, only: iflag_thermals |
37 |
use cvltr_m, only: cvltr |
use cvltr_m, only: cvltr |
38 |
use dimens_m, only: llm, nqmx |
use dimensions, only: llm, nqmx |
39 |
use dimphy, only: klon |
use dimphy, only: klon |
40 |
use histwrite_phy_m, only: histwrite_phy |
use histwrite_phy_m, only: histwrite_phy |
41 |
use indicesol, only: nbsrf |
use indicesol, only: nbsrf |
77 |
|
|
78 |
REAL pde_u(klon, llm) ! flux detraine dans le panache montant |
REAL pde_u(klon, llm) ! flux detraine dans le panache montant |
79 |
REAL pen_d(klon, llm) ! flux entraine dans le panache descendant |
REAL pen_d(klon, llm) ! flux entraine dans le panache descendant |
80 |
REAL coefh(:, :) ! (klon, llm) coeff melange couche limite |
REAL coefh(:, 2:) ! (klon, 2:llm) coeff melange couche limite |
81 |
|
real cdragh(:) ! (klon) |
82 |
real fm_therm(klon, llm+1), entr_therm(klon, llm) ! thermiques |
real fm_therm(klon, llm+1), entr_therm(klon, llm) ! thermiques |
83 |
REAL, intent(in):: yu1(:), yv1(:) ! (klon) vent au premier niveau |
REAL, intent(in):: yu1(:), yv1(:) ! (klon) vent au premier niveau |
84 |
|
|
119 |
|
|
120 |
REAL, save:: trs(klon, nqmx - 2) ! Concentration de traceur dans le sol |
REAL, save:: trs(klon, nqmx - 2) ! Concentration de traceur dans le sol |
121 |
|
|
122 |
REAL masktr(klon, nqmx - 2) ! Masque reservoir de sol traceur |
REAL, save:: masktr(klon, nqmx - 2) ! Masque reservoir de sol traceur |
123 |
! Masque de l'echange avec la surface |
! Masque de l'echange avec la surface |
124 |
! (1 = reservoir) ou (possible => 1) |
! (1 = reservoir) ou (possible => 1) |
125 |
SAVE masktr |
|
126 |
REAL fshtr(klon, nqmx - 2) ! Flux surfacique dans le reservoir de sol |
REAL, save:: fshtr(klon, nqmx - 2) |
127 |
SAVE fshtr |
! Flux surfacique dans le reservoir de sol |
128 |
REAL hsoltr(nqmx - 2) ! Epaisseur equivalente du reservoir de sol |
|
129 |
SAVE hsoltr |
REAL, save:: hsoltr(nqmx - 2) ! Epaisseur equivalente du reservoir de sol |
130 |
REAL tautr(nqmx - 2) ! Constante de decroissance radioactive |
REAL, save:: tautr(nqmx - 2) ! constante de d\'ecroissance radioactive |
|
SAVE tautr |
|
|
REAL vdeptr(nqmx - 2) ! Vitesse de depot sec dans la couche Brownienne |
|
|
SAVE vdeptr |
|
|
REAL scavtr(nqmx - 2) ! Coefficient de lessivage |
|
|
SAVE scavtr |
|
131 |
|
|
132 |
|
REAL, save:: vdeptr(nqmx - 2) |
133 |
|
! Vitesse de depot sec dans la couche Brownienne |
134 |
|
|
135 |
|
REAL, save:: scavtr(nqmx - 2) ! Coefficient de lessivage |
136 |
CHARACTER itn |
CHARACTER itn |
137 |
|
|
138 |
logical, save:: aerosol(nqmx - 2) ! Nature du traceur |
logical, save:: aerosol(nqmx - 2) ! Nature du traceur |
279 |
DO it=1, nqmx - 2 |
DO it=1, nqmx - 2 |
280 |
if (clsol(it)) then |
if (clsol(it)) then |
281 |
! couche limite avec quantite dans le sol calculee |
! couche limite avec quantite dans le sol calculee |
282 |
CALL cltracrn(it, pdtphys, yu1, yv1, coefh, t_seri, ftsol, & |
CALL cltracrn(it, pdtphys, yu1, yv1, coefh, cdragh, t_seri, ftsol, & |
283 |
pctsrf, tr_seri(:, :, it), trs(:, it), paprs, pplay, delp, & |
pctsrf, tr_seri(:, :, it), trs(:, it), paprs, pplay, delp, & |
284 |
masktr(1, it), fshtr(1, it), hsoltr(it), tautr(it), & |
masktr(1, it), fshtr(1, it), hsoltr(it), tautr(it), & |
285 |
vdeptr(it), rlat, d_tr_cl(1, 1, it), d_trs) |
vdeptr(it), rlat, d_tr_cl(1, 1, it), d_trs) |
297 |
source(i) = 0. ! pas de source, pour l'instant |
source(i) = 0. ! pas de source, pour l'instant |
298 |
ENDDO |
ENDDO |
299 |
|
|
300 |
CALL cltrac(pdtphys, coefh(:, 2:llm), t_seri, tr_seri(:, :, it), source, & |
CALL cltrac(pdtphys, coefh, t_seri, tr_seri(:, :, it), source, & |
301 |
paprs, pplay, delp, d_tr_cl(1, 1, it)) |
paprs, pplay, delp, d_tr_cl(1, 1, it)) |
302 |
DO k = 1, llm |
DO k = 1, llm |
303 |
DO i = 1, klon |
DO i = 1, klon |