Ignore:
Timestamp:
Jun 22, 2004, 1:45:36 PM (20 years ago)
Author:
lmdzadmin
Message:

Convergence avec la version d'Olivia Coindreau incluant:

  • le offline
  • les thermiques
  • mellor & yamada dans la couche limite

LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r524 r541  
    22! $Header$
    33!
    4 C
    5 c $Header$
    64c
    75      SUBROUTINE physiq (nlon,nlev,nqmax,
     
    8886#include "advtrac.h"
    8987#include "iniprint.h"
     88#include "thermcell.h"
    9089c======================================================================
    9190      LOGICAL ok_cvl  ! pour activer le nouveau driver pour convection KE
     
    157156      PARAMETER (ok_region=.FALSE.)
    158157c======================================================================
     158c     pour phsystoke avec thermiques
     159      REAL fm_therm(klon,klev+1)
     160      REAL entr_therm(klon,klev)
     161      real q2(klon,klev+1,nbsrf)
     162      save q2
     163c======================================================================
    159164c
    160165      INTEGER ivap          ! indice de traceurs pour vapeur d'eau
     
    594599      REAL zxffonte(klon), zxfqcalving(klon)
    595600
    596       LOGICAL offline           ! Controle du stockage ds "physique"
    597       PARAMETER (offline=.false.)
    598       INTEGER physid
     601c$$$      LOGICAL offline           ! Controle du stockage ds "physique"
     602c$$$      PARAMETER (offline=.false.)
     603c$$$      INTEGER physid
    599604      REAL pfrac_impa(klon,klev)! Produits des coefs lessivage impaction
    600605      save pfrac_impa
     
    807812      REAL d_t_lsc(klon,klev),d_q_lsc(klon,klev),d_ql_lsc(klon,klev)
    808813      REAL d_t_ajs(klon,klev), d_q_ajs(klon,klev)
     814      REAL d_u_ajs(klon,klev), d_v_ajs(klon,klev)
    809815      REAL d_t_eva(klon,klev),d_q_eva(klon,klev)
    810816      REAL rneb(klon,klev)
     
    10341040     .                  iflag_cldcon,ratqsbas,ratqshaut, if_ebil,
    10351041     .                  ok_ade, ok_aie,
    1036      .                  bl95_b0, bl95_b1)
    1037 cIM  .                  , RI0)
     1042     .                  bl95_b0, bl95_b1,
     1043     .                  iflag_thermals,nsplit_thermals)
    10381044
    10391045c
     
    10531059     .       run_off_lic_0)
    10541060
     1061c   ATTENTION : il faudra a terme relire q2 dans l'etat initial
     1062         q2(:,:,:)=1.e-8
    10551063c
    10561064         radpas = NINT( 86400./dtime/nbapp_rad)
     
    15081516     s            d_t_vdf,d_q_vdf,d_u_vdf,d_v_vdf,d_ts,
    15091517     s            fluxt,fluxq,fluxu,fluxv,cdragh,cdragm,
     1518     s            q2,
    15101519     s            dsens, devap,
    15111520     s            ycoefh,yu1,yv1, t2m, q2m, u10m, v10m,
     
    18501859c Appeler l'ajustement sec
    18511860c
    1852       CALL ajsec(paprs, pplay, t_seri, q_seri, d_t_ajs, d_q_ajs)
    1853       DO k = 1, klev
    1854       DO i = 1, klon
    1855          t_seri(i,k) = t_seri(i,k) + d_t_ajs(i,k)
    1856          q_seri(i,k) = q_seri(i,k) + d_q_ajs(i,k)
    1857       ENDDO
    1858       ENDDO
     1861c===================================================================
     1862c Convection seche (thermiques ou ajustement)
     1863c===================================================================
     1864c
     1865      d_t_ajs(:,:)=0.
     1866      d_u_ajs(:,:)=0.
     1867      d_v_ajs(:,:)=0.
     1868      d_q_ajs(:,:)=0.
     1869      fm_therm(:,:)=0.
     1870      entr_therm(:,:)=0.
     1871c
     1872      print*,'AVANT LA CONVECTION SECHE , iflag_thermals='
     1873     s   ,iflag_thermals,'   nsplit_thermals=',nsplit_thermals
     1874      if(iflag_thermals.lt.0) then
     1875c  Rien
     1876c  ====
     1877         print*,'pas de convection'
     1878      else if(iflag_thermals.eq.0) then
     1879
     1880c  Ajustement sec
     1881c  ==============
     1882         print*,'ajsec'
     1883         CALL ajsec(paprs, pplay, t_seri,q_seri, d_t_ajs, d_q_ajs)
     1884         t_seri(:,:) = t_seri(:,:) + d_t_ajs(:,:)
     1885         q_seri(:,:) = q_seri(:,:) + d_q_ajs(:,:)
     1886      else
     1887c  Thermiques
     1888c  ==========
     1889         print*,'JUSTE AVANT , iflag_thermals='
     1890     s   ,iflag_thermals,'   nsplit_thermals=',nsplit_thermals
     1891         call calltherm(pdtphys
     1892     s      ,pplay,paprs,pphi
     1893     s      ,u_seri,v_seri,t_seri,q_seri
     1894     s      ,d_u_ajs,d_v_ajs,d_t_ajs,d_q_ajs
     1895     s      ,fm_therm,entr_therm)
     1896      endif
     1897c
     1898c===================================================================
    18591899c
    18601900      IF (if_ebil.ge.2) THEN
     
    25732613     I                   u,v,t,paprs,pplay,
    25742614     I                   pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
    2575      I                   ycoefh,yu1,yv1,ftsol,pctsrf,rlat,
    2576      I                   frac_impa, frac_nucl,
     2615     I                   ycoefh,fm_therm,entr_therm,yu1,yv1,ftsol,
     2616     I                   pctsrf,rlat,frac_impa, frac_nucl,
    25772617     I                   rlon,presnivs,pphis,pphi,
    25782618     I                   albsol,
     
    25892629      IF (offline) THEN
    25902630
     2631         print*,'Attention on met a 0 les thermiques pour phystoke'
    25912632         call phystokenc (
    25922633     I                   nlon,nlev,pdtphys,rlon,rlat,
    25932634     I                   t,pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
     2635     I                   fm_therm,entr_therm,
    25942636     I                   ycoefh,yu1,yv1,ftsol,pctsrf,
    25952637     I                   frac_impa, frac_nucl,
Note: See TracChangeset for help on using the changeset viewer.