--- trunk/phylmd/Thermcell/thermcell.f90 2013/11/15 18:45:49 76 +++ trunk/Sources/phylmd/Thermcell/thermcell.f 2015/06/18 13:49:26 150 @@ -8,17 +8,17 @@ po, pduadj, pdvadj, pdtadj, pdoadj, fm0, entr0, r_aspect, l_mix, w2di, & tho) - ! Calcul du transport vertical dans la couche limite en présence - ! de "thermiques" explicitement représentés. Récriture à partir - ! d'un listing papier à Habas, le 14/02/00. Le thermique est - ! supposé homogène et dissipé par mélange avec son - ! environnement. La longueur "l_mix" contrôle l'efficacité du - ! mélange. Le calcul du transport des différentes espèces se fait + ! Calcul du transport vertical dans la couche limite en pr\'esence + ! de "thermiques" explicitement repr\'esent\'es. R\'ecriture \`a partir + ! d'un listing papier \`a Habas, le 14/02/00. Le thermique est + ! suppos\'e homog\`ene et dissip\'e par m\'elange avec son + ! environnement. La longueur "l_mix" contrôle l'efficacit\'e du + ! m\'elange. Le calcul du transport des diff\'erentes esp\`eces se fait ! en prenant en compte : ! 1. un flux de masse montant ! 2. un flux de masse descendant - ! 3. un entraînement - ! 4. un détraînement + ! 3. un entra\^inement + ! 4. un d\'etra\^inement USE dimphy, ONLY : klev, klon USE suphec_m, ONLY : rd, rg, rkappa @@ -30,8 +30,10 @@ real ptimestep, l_mix, r_aspect REAL, intent(in):: pt(ngrid, nlay) real pdtadj(ngrid, nlay) - REAL pu(ngrid, nlay), pduadj(ngrid, nlay) - REAL pv(ngrid, nlay), pdvadj(ngrid, nlay) + REAL, intent(in):: pu(ngrid, nlay) + real pduadj(ngrid, nlay) + REAL, intent(in):: pv(ngrid, nlay) + real pdvadj(ngrid, nlay) REAL po(ngrid, nlay), pdoadj(ngrid, nlay) REAL, intent(in):: pplay(ngrid, nlay) real, intent(in):: pplev(ngrid, nlay+1) @@ -44,25 +46,20 @@ ! local: INTEGER ig, k, l, lmaxa(klon), lmix(klon) - real zsortie1d(klon) ! CR: on remplace lmax(klon, klev+1) INTEGER lmax(klon), lmin(klon), lentr(klon) real linter(klon) real zmix(klon), fracazmix(klon) - real zmax(klon), zw, zz, zw2(klon, klev+1), ztva(klon, klev), zzz + real zmax(klon), zw, zw2(klon, klev+1), ztva(klon, klev) real zlev(klon, klev+1), zlay(klon, klev) REAL zh(klon, klev), zdhadj(klon, klev) REAL ztv(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) real zla(klon, klev+1) real zwa(klon, klev+1) real zld(klon, klev+1) - real zwd(klon, klev+1) - real zsortie(klon, klev) real zva(klon, klev) real zua(klon, klev) real zoa(klon, klev) @@ -75,8 +72,7 @@ real thetath2(klon, klev), wth2(klon, klev) common/comtherm/thetath2, wth2 - real count_time - integer isplit, nsplit, ialt + integer isplit, nsplit parameter (nsplit=10) data isplit/0/ save isplit @@ -88,33 +84,26 @@ real wmax(klon), wmaxa(klon) real wa(klon, klev, klev+1) real wd(klon, klev+1) - real larg_part(klon, klev, klev+1) real fracd(klon, klev+1) real xxx(klon, klev+1) real larg_cons(klon, klev+1) real larg_detr(klon, klev+1) real fm0(klon, klev+1), entr0(klon, klev), detr(klon, klev) - real pu_therm(klon, klev), pv_therm(klon, klev) real fm(klon, klev+1), entr(klon, klev) real fmc(klon, klev+1) !CR:nouvelles variables real f_star(klon, klev+1), entr_star(klon, klev) real entr_star_tot(klon), entr_star2(klon) - real f(klon), f0(klon) + real f(klon) real zlevinter(klon) logical first data first /.false./ save first - character*2 str2 - character*10 str10 - - LOGICAL vtest(klon), down - EXTERNAL SCOPY - integer ncorrec, ll + integer ncorrec save ncorrec data ncorrec/0/ @@ -423,7 +412,7 @@ ! calcul de la largeur de chaque ascendance dans le cas conservatif. ! dans ce cas simple, on suppose que la largeur de l'ascendance provenant - ! d'une couche est égale à la hauteur de la couche alimentante. + ! d'une couche est \'egale \`a la hauteur de la couche alimentante. ! La vitesse maximale dans l'ascendance est aussi prise comme estimation ! de la vitesse d'entrainement horizontal dans la couche alimentante. @@ -448,7 +437,7 @@ enddo enddo - ! 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 ! compte de l'epluchage du thermique. !CR def de zmix continu (profil parabolique des vitesses)