8 |
po, pduadj, pdvadj, pdtadj, pdoadj, fm0, entr0, r_aspect, l_mix, w2di, & |
po, pduadj, pdvadj, pdtadj, pdoadj, fm0, entr0, r_aspect, l_mix, w2di, & |
9 |
tho) |
tho) |
10 |
|
|
11 |
! Calcul du transport vertical dans la couche limite en présence |
! Calcul du transport vertical dans la couche limite en pr\'esence |
12 |
! de "thermiques" explicitement représentés. Récriture à partir |
! de "thermiques" explicitement repr\'esent\'es. R\'ecriture \`a partir |
13 |
! d'un listing papier à Habas, le 14/02/00. Le thermique est |
! d'un listing papier \`a Habas, le 14/02/00. Le thermique est |
14 |
! supposé homogène et dissipé par mélange avec son |
! suppos\'e homog\`ene et dissip\'e par m\'elange avec son |
15 |
! environnement. La longueur "l_mix" contrôle l'efficacité du |
! environnement. La longueur "l_mix" contr\^ole l'efficacit\'e du |
16 |
! mélange. Le calcul du transport des différentes espèces se fait |
! m\'elange. Le calcul du transport des diff\'erentes esp\`eces se fait |
17 |
! en prenant en compte : |
! en prenant en compte : |
18 |
! 1. un flux de masse montant |
! 1. un flux de masse montant |
19 |
! 2. un flux de masse descendant |
! 2. un flux de masse descendant |
20 |
! 3. un entraînement |
! 3. un entra\^inement |
21 |
! 4. un détraînement |
! 4. un d\'etra\^inement |
22 |
|
|
23 |
USE dimphy, ONLY : klev, klon |
USE dimphy, ONLY : klev, klon |
24 |
USE suphec_m, ONLY : rd, rg, rkappa |
USE suphec_m, ONLY : rd, rg, rkappa |
46 |
! local: |
! local: |
47 |
|
|
48 |
INTEGER ig, k, l, lmaxa(klon), lmix(klon) |
INTEGER ig, k, l, lmaxa(klon), lmix(klon) |
|
real zsortie1d(klon) |
|
49 |
! CR: on remplace lmax(klon, klev+1) |
! CR: on remplace lmax(klon, klev+1) |
50 |
INTEGER lmax(klon), lmin(klon), lentr(klon) |
INTEGER lmax(klon), lmin(klon), lentr(klon) |
51 |
real linter(klon) |
real linter(klon) |
52 |
real zmix(klon), fracazmix(klon) |
real zmix(klon), fracazmix(klon) |
53 |
|
|
54 |
real zmax(klon), zw, zz, zw2(klon, klev+1), ztva(klon, klev), zzz |
real zmax(klon), zw, zw2(klon, klev+1), ztva(klon, klev) |
55 |
|
|
56 |
real zlev(klon, klev+1), zlay(klon, klev) |
real zlev(klon, klev+1), zlay(klon, klev) |
57 |
REAL zh(klon, klev), zdhadj(klon, klev) |
REAL zh(klon, klev), zdhadj(klon, klev) |
58 |
REAL ztv(klon, klev) |
REAL ztv(klon, klev) |
59 |
real zu(klon, klev), zv(klon, klev), zo(klon, klev) |
real zu(klon, klev), zv(klon, klev), zo(klon, klev) |
|
REAL wh(klon, klev+1) |
|
|
real wu(klon, klev+1), wv(klon, klev+1), wo(klon, klev+1) |
|
60 |
real zla(klon, klev+1) |
real zla(klon, klev+1) |
61 |
real zwa(klon, klev+1) |
real zwa(klon, klev+1) |
62 |
real zld(klon, klev+1) |
real zld(klon, klev+1) |
|
real zwd(klon, klev+1) |
|
|
real zsortie(klon, klev) |
|
63 |
real zva(klon, klev) |
real zva(klon, klev) |
64 |
real zua(klon, klev) |
real zua(klon, klev) |
65 |
real zoa(klon, klev) |
real zoa(klon, klev) |
72 |
real thetath2(klon, klev), wth2(klon, klev) |
real thetath2(klon, klev), wth2(klon, klev) |
73 |
common/comtherm/thetath2, wth2 |
common/comtherm/thetath2, wth2 |
74 |
|
|
75 |
real count_time |
integer isplit, nsplit |
|
integer isplit, nsplit, ialt |
|
76 |
parameter (nsplit=10) |
parameter (nsplit=10) |
77 |
data isplit/0/ |
data isplit/0/ |
78 |
save isplit |
save isplit |
84 |
real wmax(klon), wmaxa(klon) |
real wmax(klon), wmaxa(klon) |
85 |
real wa(klon, klev, klev+1) |
real wa(klon, klev, klev+1) |
86 |
real wd(klon, klev+1) |
real wd(klon, klev+1) |
|
real larg_part(klon, klev, klev+1) |
|
87 |
real fracd(klon, klev+1) |
real fracd(klon, klev+1) |
88 |
real xxx(klon, klev+1) |
real xxx(klon, klev+1) |
89 |
real larg_cons(klon, klev+1) |
real larg_cons(klon, klev+1) |
90 |
real larg_detr(klon, klev+1) |
real larg_detr(klon, klev+1) |
91 |
real fm0(klon, klev+1), entr0(klon, klev), detr(klon, klev) |
real fm0(klon, klev+1), entr0(klon, klev), detr(klon, klev) |
|
real pu_therm(klon, klev), pv_therm(klon, klev) |
|
92 |
real fm(klon, klev+1), entr(klon, klev) |
real fm(klon, klev+1), entr(klon, klev) |
93 |
real fmc(klon, klev+1) |
real fmc(klon, klev+1) |
94 |
|
|
95 |
!CR:nouvelles variables |
!CR:nouvelles variables |
96 |
real f_star(klon, klev+1), entr_star(klon, klev) |
real f_star(klon, klev+1), entr_star(klon, klev) |
97 |
real entr_star_tot(klon), entr_star2(klon) |
real entr_star_tot(klon), entr_star2(klon) |
98 |
real f(klon), f0(klon) |
real f(klon) |
99 |
real zlevinter(klon) |
real zlevinter(klon) |
|
logical first |
|
|
data first /.false./ |
|
|
save first |
|
|
|
|
|
character*2 str2 |
|
|
character*10 str10 |
|
|
|
|
|
LOGICAL vtest(klon), down |
|
100 |
|
|
101 |
EXTERNAL SCOPY |
EXTERNAL SCOPY |
102 |
|
|
|
integer ncorrec, ll |
|
|
save ncorrec |
|
|
data ncorrec/0/ |
|
|
|
|
103 |
!----------------------------------------------------------------------- |
!----------------------------------------------------------------------- |
104 |
|
|
105 |
! initialisation: |
! initialisation: |
405 |
|
|
406 |
! calcul de la largeur de chaque ascendance dans le cas conservatif. |
! calcul de la largeur de chaque ascendance dans le cas conservatif. |
407 |
! dans ce cas simple, on suppose que la largeur de l'ascendance provenant |
! dans ce cas simple, on suppose que la largeur de l'ascendance provenant |
408 |
! d'une couche est égale à la hauteur de la couche alimentante. |
! d'une couche est \'egale \`a la hauteur de la couche alimentante. |
409 |
! La vitesse maximale dans l'ascendance est aussi prise comme estimation |
! La vitesse maximale dans l'ascendance est aussi prise comme estimation |
410 |
! de la vitesse d'entrainement horizontal dans la couche alimentante. |
! de la vitesse d'entrainement horizontal dans la couche alimentante. |
411 |
|
|
430 |
enddo |
enddo |
431 |
enddo |
enddo |
432 |
|
|
433 |
! calcul de la fraction de la maille concernée par l'ascendance en tenant |
! calcul de la fraction de la maille concern\'ee par l'ascendance en tenant |
434 |
! compte de l'epluchage du thermique. |
! compte de l'epluchage du thermique. |
435 |
|
|
436 |
!CR def de zmix continu (profil parabolique des vitesses) |
!CR def de zmix continu (profil parabolique des vitesses) |