Changeset 173


Ignore:
Timestamp:
Jun 22, 2011, 10:39:16 AM (14 years ago)
Author:
acolaitis
Message:

Minor modifications related to thermals

Location:
trunk/LMDZ.MARS
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/README

    r172 r173  
    754754- minor correction to callradite.F (to enable compilation in debug mode
    755755  with ifort when there is only one tracer).
     756
     757== 17/06/2011 == AC
     758- Added maximum vertical velocity and heat flux output from thermals
     759- Added buoyancy diagnostics
     760- Minor modifications in thermals routines
  • trunk/LMDZ.MARS/libf/phymars/calltherm_interface.F90

    r165 r173  
    66     & ptimestep,pu,pv,pt,pq,pdu,pdv,pdt,pdq,q2, &
    77     & pplay,pplev,pphi,nq,zpopsk, &
    8      & pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,pbl_dtke)
     8     & pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,pbl_dtke,hfmax,wmax)
    99
    1010       USE ioipsl_getincom
     
    6767      REAL buoyancyOut(ngrid,nlayer)
    6868      REAL buoyancyEst(ngrid,nlayer)
     69      REAL hfmax(ngrid),wmax(ngrid)
    6970
    7071!---------------------------------------------------------
     
    137138     &      ,zw2,fraca &
    138139     &      ,zpopsk,ztla,heatFlux,heatFlux_down &
    139      &      ,buoyancyOut,buoyancyEst)
     140     &      ,buoyancyOut,buoyancyEst,hfmax,wmax)
    140141
    141142
     
    185186        call WRITEDIAGFI(ngrid,'d_t_th',  &
    186187     &         'tendance temp TH','K',1,d_t_ajs)
    187         call WRITEDIAGFI(ngrid,'d_q_ajs',  &
    188      &         'tendance q updraft','kg/kg',1,d_q_ajs(:,:,nq))
    189         call WRITEDIAGFI(ngrid,'d_q_tke',  &
    190      &         'tendance q updraft','q2/q2',1,pbl_dtke*ptimestep)
    191188      else
    192189
  • trunk/LMDZ.MARS/libf/phymars/calltherm_mars.F90

    r161 r173  
    88     &      ,fm_therm,entr_therm,detr_therm,lmax,&
    99     &   zw2,fraca,zpopsk,ztla,heatFlux,heatFlux_down,&
    10      &     buoyancyOut,buoyancyEst)
     10     &     buoyancyOut,buoyancyEst,hfmax,wmax)
    1111
    1212       USE thermcell, only : nsplit_thermals,r_aspect_thermals
     
    4343!********************************************************
    4444!     declarations
    45       LOGICAL flag_bidouille_stratocu
    46       real fmc_therm(ngrid,nlayer+1)
    47       real zqla(ngrid,nlayer)
    48       real zqta(ngrid,nlayer)
    4945      real zpopsk(ngrid,nlayer)
    5046      real ztla(ngrid,nlayer)
    51       real wmax_sec(ngrid)
    52       real zmax_sec(ngrid)
    53       real f_sec(ngrid)
    54       real detrc_therm(ngrid,nlayer)
    55       real zw_sec(ngrid,nlayer+1)
    56       integer lmix_sec(ngrid)
     47      real wmax(ngrid)
     48      real hfmax(ngrid)
    5749      integer lmax(ngrid)
    5850
     
    160152     &       +zheatFlux(:,:)*fact
    161153            heatFlux_down(:,:)=heatFlux_down(:,:) &
    162              +zheatFlux_down(:,:)*fact
     154     &       +zheatFlux_down(:,:)*fact
    163155            buoyancyOut(:,:)=buoyancyOut(:,:) &
    164156     &       +zbuoyancyOut(:,:)*fact
    165157            buoyancyEst(:,:)=buoyancyEst(:,:) &
    166                  &       +zbuoyancyEst(:,:)*fact
     158     &       +zbuoyancyEst(:,:)*fact
    167159
    168160            zw2(:,:)=zw2(:,:) + zzw2(:,:)*fact
     
    194186!             enddo
    195187!          enddo
    196 
     188       
     189          DO i=1,ngrid
     190            hfmax(i)=MAXVAL(heatFlux(i,:)+heatFlux_down(i,:))
     191            wmax(i)=MAXVAL(zw2(i,:))
     192          ENDDO
     193 
    197194      return
    198195
  • trunk/LMDZ.MARS/libf/phymars/meso_physiq.F

    r162 r173  
    366366      INTEGER lmax_th(ngrid)
    367367      REAL dtke_th(ngrid,nlayer+1)
    368       REAL dummycol(ngrid)
     368      REAL wmax_th(ngrid),hfmax_th(ngrid)
    369369c=======================================================================
    370370#ifdef MESOSCALE
     
    10131013     $ ptimestep,pu,pv,pt,pq,pdu,pdv,pdt,pdq,q2,
    10141014     $ pplay,pplev,pphi,nq,zpopsk,
    1015      $ pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,dtke_th)
     1015     $ pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,dtke_th,hfmax_th,wmax_th)
    10161016 
    10171017         DO l=1,nlayer
  • trunk/LMDZ.MARS/libf/phymars/physiq.F

    r164 r173  
    303303
    304304      REAL lmax_th_out(ngrid)
     305      REAL wmax_th(ngrid),hfmax_th(ngrid)
    305306      REAL pdu_th(ngrid,nlayer),pdv_th(ngrid,nlayer)
    306307      REAL pdt_th(ngrid,nlayer),pdq_th(ngrid,nlayer,nq)
     
    308309      REAL dtke_th(ngrid,nlayer+1)
    309310      REAL dummycol(ngrid)
     311      REAL hfx(ngrid)
     312
    310313c=======================================================================
    311314
     
    631634     &        zdqdif,zdqsdif)
    632635
     636          hfx(:) = zflubid(:)-capcal(:)*zdtsdif(:)
    633637
    634638         DO l=1,nlayer
     
    680684     $ ptimestep,pu,pv,pt,pq,pdu,pdv,pdt,pdq,q2,
    681685     $ pplay,pplev,pphi,nq,zpopsk,
    682      $ pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,dtke_th)
     686     $ pdu_th,pdv_th,pdt_th,pdq_th,lmax_th,dtke_th,hfmax_th,wmax_th)
    683687 
    684688         DO l=1,nlayer
     
    14571461c        Outputs of thermals
    14581462c        ----------------------------------------------------------
    1459 
     1463         if (calltherm) then
    14601464
    14611465!        call WRITEDIAGFI(ngrid,'dtke',
     
    14761480!        endif
    14771481
     1482        lmax_th_out(:)=real(lmax_th(:))
     1483
     1484        call WRITEDIAGFI(ngridmx,'hfx',
     1485     &              'sensible heat flux','W.m-2',
     1486     &                         2,hfx)
     1487
     1488        call WRITEDIAGFI(ngridmx,'lmax_th',
     1489     &              'hauteur du thermique','K',
     1490     &                         2,lmax_th_out)
     1491        call WRITEDIAGFI(ngridmx,'hfmax_th',
     1492     &              'maximum TH heat flux','K.m/s',
     1493     &                         2,hfmax_th)
     1494        call WRITEDIAGFI(ngridmx,'wmax_th',
     1495     &              'maximum TH vertical velocity','m/s',
     1496     &                         2,wmax_th)
     1497
     1498         endif
    14781499
    14791500c        ----------------------------------------------------------
     
    15121533
    15131534! THERMALS STUFF 1D
     1535
     1536        call WRITEDIAGFI(ngridmx,'hfx',
     1537     &              'sensible heat flux','W.m-2',
     1538     &                         0,hfx)
    15141539         if(calltherm) then
    15151540
    15161541        lmax_th_out(:)=real(lmax_th(:))
    15171542
    1518       if (ngridmx .eq. 1) then
    15191543        call WRITEDIAGFI(ngridmx,'lmax_th',
    1520      &              'hauteur du thermique','K',
     1544     &              'hauteur du thermique','point',
    15211545     &                         0,lmax_th_out)
    1522 
    1523        else
    1524         call WRITEDIAGFI(ngridmx,'lmax_th',
    1525      &              'hauteur du thermique','K',
    1526      &                         2,lmax_th_out)
    1527 
    1528        endif
     1546        call WRITEDIAGFI(ngridmx,'hfmax_th',
     1547     &              'maximum TH heat flux','K.m/s',
     1548     &                         0,hfmax_th)
     1549        call WRITEDIAGFI(ngridmx,'wmax_th',
     1550     &              'maximum TH vertical velocity','m/s',
     1551     &                         0,wmax_th)
     1552
    15291553
    15301554         co2col(:)=0.
  • trunk/LMDZ.MARS/libf/phymars/thermcell_main_mars.F90

    r165 r173  
    303303      ztva_est(:,:)=ztva(:,:)
    304304      ztla(:,:)=0.
    305 
     305      zdz=0.
    306306      zbuoy(:,:)=0.
    307307      w_est(:,:)=0.
     
    332332       do l=2,nlay-1
    333333         do ig=1,ngrid
    334             if (ztv(ig,l)>(ztv(ig,l+1)+0.5) .and. ztv(ig,1)>=ztv(ig,l) .and. ztv(ig,l-1)>(ztv(ig,l))) then
     334            if (ztv(ig,l)>(ztv(ig,l+1)+0.5) .and. ztv(ig,1)>=ztv(ig,l) .and. (alim_star(ig,l-1) .ne. 0.)) then
    335335               alim_star(ig,l)=MAX((ztv(ig,l)-ztv(ig,l+1)),0.)  &
    336336     &                       *sqrt(zlev(ig,l+1))
Note: See TracChangeset for help on using the changeset viewer.