Ignore:
Timestamp:
Aug 17, 2006, 5:41:51 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Inclusion des modifs de Y. Meurdesoif pour la version V3
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/V3_test/libf/phylmd/thermcell.F

    r542 r704  
    66c    s                  ,pu_therm,pv_therm
    77     s                  ,r_aspect,l_mix,w2di,tho)
    8 
     8      USE dimphy
    99      IMPLICIT NONE
    1010
     
    1414c   de "thermiques" explicitement representes
    1515c
    16 c   Réécriture à partir d'un listing papier à Habas, le 14/02/00
    17 c
    18 c   le thermique est supposé homogène et dissipé par mélange avec
    19 c   son environnement. la longueur l_mix contrôle l'efficacité du
    20 c   mélange
    21 c
    22 c   Le calcul du transport des différentes espèces se fait en prenant
     16c   R�criture �partir d'un listing papier �Habas, le 14/02/00
     17c
     18c   le thermique est suppos�homog�e et dissip�par m�ange avec
     19c   son environnement. la longueur l_mix contr�e l'efficacit�du
     20c   mange
     21c
     22c   Le calcul du transport des diff�entes esp�es se fait en prenant
    2323c   en compte:
    2424c     1. un flux de masse montant
     
    3333c   -------------
    3434
    35 #include "dimensions.h"
    36 #include "dimphy.h"
     35cym#include "dimensions.h"
     36cym#include "dimphy.h"
    3737#include "YOMCST.h"
    3838
     
    5252      save idetr
    5353      data idetr/3/
    54 
     54c$OMP THREADPRIVATE(idetr)
    5555c   local:
    5656c   ------
     
    8585      real fracc(klon,klev+1)
    8686      real zf,zf2
    87       real thetath2(klon,klev),wth2(klon,klev)
    88       common/comtherm/thetath2,wth2
     87      real,allocatable,save :: thetath2(:,:),wth2(:,:)
     88c$OMP THREADPRIVATE(thetath2,wth2)
     89cym      common/comtherm/thetath2,wth2
    8990
    9091      real count_time
     
    9394      data isplit/0/
    9495      save isplit
    95 
     96c$OMP THREADPRIVATE(isplit)
    9697      logical sorties
    9798      real rho(klon,klev),rhobarz(klon,klev+1),masse(klon,klev)
     
    120121      data first /.false./
    121122      save first
     123c$OMP THREADPRIVATE(first)
    122124cRC
    123125
     
    132134      save ncorrec
    133135      data ncorrec/0/
    134      
     136c$OMP THREADPRIVATE(ncorrec)
     137      logical,save :: firstCall=.true.
     138c$OMP THREADPRIVATE(firstCall)
    135139c
    136140c-----------------------------------------------------------------------
     
    138142c   ---------------
    139143c
     144      if (firstcall) then
     145        allocate(thetath2(klon,klev),wth2(klon,klev))
     146        thetath2(:,:)=0.
     147        wth2(:,:)=0.
     148        firstcall=.false.
     149      endif
     150     
    140151       sorties=.true.
    141152      IF(ngrid.NE.klon) THEN
     
    501512c   calcul de la largeur de chaque ascendance dans le cas conservatif.
    502513c   dans ce cas simple, on suppose que la largeur de l'ascendance provenant
    503 c   d'une couche est égale à la hauteur de la couche alimentante.
     514c   d'une couche est �ale �la hauteur de la couche alimentante.
    504515c   La vitesse maximale dans l'ascendance est aussi prise comme estimation
    505516c   de la vitesse d'entrainement horizontal dans la couche alimentante.
     
    540551c      print*,'10 OK convect8'
    541552c     print*,'WA2 ',wa_moy
    542 c   calcul de la fraction de la maille concernée par l'ascendance en tenant
     553c   calcul de la fraction de la maille concern par l'ascendance en tenant
    543554c   compte de l'epluchage du thermique.
    544555c
     
    979990      subroutine dqthermcell(ngrid,nlay,ptimestep,fm,entr,masse
    980991     .    ,q,dq,qa)
     992      use dimphy
    981993      implicit none
    982994
     
    9891001c=======================================================================
    9901002
    991 #include "dimensions.h"
    992 #include "dimphy.h"
     1003cym#include "dimensions.h"
     1004cym#include "dimphy.h"
    9931005
    9941006      integer ngrid,nlay
     
    10531065     .    ,fraca,larga
    10541066     .    ,u,v,du,dv,ua,va)
     1067       use dimphy
    10551068      implicit none
    10561069
     
    10631076c=======================================================================
    10641077
    1065 #include "dimensions.h"
    1066 #include "dimphy.h"
     1078cym#include "dimensions.h"
     1079cym#include "dimphy.h"
    10671080
    10681081      integer ngrid,nlay
     
    11061119            if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt.
    11071120     s         1.e-5*masse(ig,k)) then
    1108 c   On itère sur la valeur du coeff de freinage.
     1121c   On ite sur la valeur du coeff de freinage.
    11091122c              gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k))
    11101123               gamma0=masse(ig,k)
     
    11121125     s         *0.5/larga(ig)
    11131126c              gamma0=0.
    1114 c   la première fois on multiplie le coefficient de freinage
     1127c   la premie fois on multiplie le coefficient de freinage
    11151128c   par le module du vent dans la couche en dessous.
    11161129               dua=ua(ig,k-1)-u(ig,k-1)
     
    11661179      subroutine dqthermcell2(ngrid,nlay,ptimestep,fm,entr,masse,frac
    11671180     .    ,q,dq,qa)
     1181      use dimphy
    11681182      implicit none
    11691183
     
    11761190c=======================================================================
    11771191
    1178 #include "dimensions.h"
    1179 #include "dimphy.h"
     1192cym#include "dimensions.h"
     1193cym#include "dimphy.h"
    11801194
    11811195      integer ngrid,nlay
     
    12461260     .    ,fraca,larga
    12471261     .    ,u,v,du,dv,ua,va)
     1262      use dimphy
    12481263      implicit none
    12491264
     
    12561271c=======================================================================
    12571272
    1258 #include "dimensions.h"
    1259 #include "dimphy.h"
     1273cym#include "dimensions.h"
     1274cym#include "dimphy.h"
    12601275
    12611276      integer ngrid,nlay
     
    13021317            if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt.
    13031318     s         1.e-5*masse(ig,k)) then
    1304 c   On itère sur la valeur du coeff de freinage.
     1319c   On ite sur la valeur du coeff de freinage.
    13051320c              gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k))
    13061321               gamma0=masse(ig,k)
     
    13131328               zf=0.
    13141329               zf2=1./(1.-zf)
    1315 c   la première fois on multiplie le coefficient de freinage
     1330c   la premie fois on multiplie le coefficient de freinage
    13161331c   par le module du vent dans la couche en dessous.
    13171332               dua=ua(ig,k-1)-u(ig,k-1)
Note: See TracChangeset for help on using the changeset viewer.