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/phytrac.F

    r524 r541  
    2323     I                    pde_d,
    2424     I                    coefh,
     25     I                    fm_therm,entr_therm,
    2526     I                    yu1,
    2627     I                    yv1,
     
    130131      logical debutphy       ! le flag de l'initialisation de la physique
    131132      logical lafin          ! le flag de la fin de la physique
    132 
     133c Olivia     
     134      integer isplit,nsplit
    133135      REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--lessivage convection
    134136      REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--lessivage large-scale
     
    146148      REAL pmfd(nlon,nlev)  ! flux de masse dans le panache descendant
    147149      REAL pen_u(nlon,nlev) ! flux entraine dans le panache montant
     150
     151c
     152c   thermiques:
     153c   -----------
     154c
     155      real fm_therm(klon,klev+1),entr_therm(klon,klev)
     156        real fm_therm1(klon,klev)
     157c
    148158      REAL pde_u(nlon,nlev) ! flux detraine dans le panache montant
    149159      REAL pen_d(nlon,nlev) ! flux entraine dans le panache descendant
     
    265275      REAL d_tr(klon,klev), d_trs(klon) ! tendances de traceurs
    266276      REAL d_tr_cl(klon,klev) ! tendance de traceurs  couche limite
    267       REAL d_tr_cv(klon,klev) ! tendance de traceurs  convection
     277      REAL d_tr_cli(klon,klev,nbtr) ! tendance de traceurs  CL pour chq traceur
     278      REAL d_tr_cv(klon,klev) ! tendance de traceurs  convection
     279      REAL d_tr_cvi(klon,klev,nbtr) ! tendance de traceurs  conv pour chq traceur
     280      REAL d_tr_th(klon,klev,nbtr) ! la tendance des thermiques
    268281      REAL d_tr_dec(klon,klev,nbtr) ! la tendance de la decroissance
    269282c                                   ! radioactive du rn - > pb
     
    280293      REAL flestottr(klon,klev,nbtr) ! flux de lessivage
    281294c                                    ! dans chaque couche
     295      real zmasse(klon,klev)
     296      real ztra_th(klon,klev)
    282297
    283298C
     
    288303c-------------
    289304      logical first,couchelimite,convection,lessivage,sorties,
    290      s        rnpb,inirnpb
    291       save first,couchelimite,convection,lessivage,sorties,
    292      s     inirnpb
    293       data first,couchelimite,convection,lessivage,sorties
    294      s     /.true.,.true.,.false.,.true.,.true./
     305     s        rnpb,inirnpb,thermiques
     306      save first,couchelimite,convection,lessivage,thermiques,
     307     s        sorties,inirnpb
     308c      data first,couchelimite,convection,lessivage,sorties
     309c     s     /.true.,.true.,.false.,.true.,.true./
     310c Olivia
     311       data first,couchelimite,convection,lessivage,
     312     s      thermiques,sorties
     313     s     /.true.,.true.,.true.,.true.,.true.,.true./
     314
    295315
    296316#ifdef INCA
     
    522542      DO i = 1, klon
    523543         tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cv(i,k)
     544         d_tr_cvi(i,k,it)=d_tr_cv(i,k)
     545c        print*,'en k i d_tr_cv=',k,i,d_tr_cv(i,k)
    524546      ENDDO
    525547      ENDDO
     
    541563c      enddo
    542564
     565
     566c======================================================================
     567c   Calcul de l'effet des thermiques
     568c======================================================================
     569
     570      do k=1,klev
     571         do i=1,klon
     572            zmasse(i,k)=(paprs(i,k)-paprs(i,k+1))/rg
     573         enddo
     574      enddo
     575
     576c      print*,'masse dans ph ',zmasse
     577      do it=1,nqmax
     578         do k=1,klev
     579            do i=1,klon
     580               d_tr_th(i,k,it)=0.
     581               tr_seri(i,k,it)=max(tr_seri(i,k,it),0.)
     582               tr_seri(i,k,it)=min(tr_seri(i,k,it),1.e10)
     583            enddo
     584         enddo
     585      enddo
     586
     587      if (thermiques) then
     588        print*,'calcul de leffet des thermiques'
     589        nsplit=10
     590        DO it=1, nqmax
     591c        WRITE(itn,'(i1)') it
     592c        CALL minmaxqfi(tr_seri(1,1,it),1.e10,-1.e33,'conv it='//itn)
     593c            print*,'avant dqthermiquesretro'
     594c             call dump2d(iim,jjm-1,tr_seri(2,1,1),'TR_SERI      ')
     595
     596         do isplit=1,nsplit
     597c  Abderr 25 11 02
     598C Thermiques
     599c       print*,'Avant dans phytrac',avant
     600            call dqthermcell(klon,klev,pdtphys/nsplit
     601     .       ,fm_therm,entr_therm,zmasse
     602     .       ,tr_seri(1:klon,1:klev,it),d_tr,ztra_th)
     603
     604            do k=1,klev
     605               do i=1,klon
     606                  d_tr(i,k)=pdtphys*d_tr(i,k)/nsplit
     607                  d_tr_th(i,k,it)=d_tr_th(i,k,it)+d_tr(i,k)
     608                  tr_seri(i,k,it)=max(tr_seri(i,k,it)+d_tr(i,k),0.)
     609               enddo
     610            enddo
     611          enddo ! nsplit
     612          print*,'apres thermiques'
     613c             call dump2d(iim,jjm-1,d_tr_th(1,1,1),'d_tr_th      ')
     614c            do k=1,klev
     615c       print*,'d_tr_th(',k,')=',tr_seri(280,k,1)
     616c          enddo
     617
     618c        WRITE(itn,'(i1)') it
     619c        CALL minmaxqfi(tr_seri(1,1,it),1.e10,-1.e33,'therm it='//itn)
     620       ENDDO ! it
     621       endif ! Thermiques
     622c       print*,'ATTENTION: sdans thermniques'
     623     
    543624c======================================================================
    544625c   Calcul de l'effet de la couche limite
     
    576657            DO i = 1, klon
    577658              tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cl(i,k)
     659              d_tr_cli(i,k,it)=d_tr_cl(i,k)
    578660            ENDDO
    579661          ENDDO
     
    608690               DO i = 1, klon
    609691                  tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr(i,k)
     692                  d_tr_cli(i,k,it)=d_tr_cl(i,k)
    610693               ENDDO
    611694            ENDDO
Note: See TracChangeset for help on using the changeset viewer.