Ignore:
Timestamp:
Jan 11, 2012, 2:21:08 PM (13 years ago)
Author:
acolaitis
Message:

M 489 libf/phymars/thermcell_main_mars.F90
--------------------> New parameters for thermals, following latest version of the relevant article

M 489 libf/phymars/physiq.F
--------------------> Minor modifications

D 489 libf/phymars/surflayer_interpol.F
A 0 libf/phymars/pbl_parameters.F
--------------------> Replaced surflayer_interpol.F by a cleaner and richer version called pbl_parameters.F

This routine is the base of what will later be implemented in the MCD and as a tool to
compute surface properties from output fields (so that it will ultimately disappear from libf
and might become an utility)

M 489 libf/phymars/vdif_cd.F
--------------------> Minor modification to the Richardson computation

M 489 libf/phymars/vdifc.F
--------------------> Minor modification to the aerodynamic conductances computation, replacing wmax by hfmax, which

is a better proxy for convective activity. Might be replaced by w_star later.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/physiq.F

    r485 r496  
    333333      REAL lmax_th_out(ngridmx),zmax_th(ngridmx)
    334334      REAL, SAVE :: wmax_th(ngridmx)
    335       REAL hfmax_th(ngridmx)
     335      REAL, SAVE :: hfmax_th(ngridmx)
    336336      REAL pdu_th(ngridmx,nlayermx),pdv_th(ngridmx,nlayermx)
    337337      REAL pdt_th(ngridmx,nlayermx),pdq_th(ngridmx,nlayermx,nqmx)
     
    342342      REAL z_out                          ! height of interpolation between z0 and z1 [meters]
    343343      REAL ustar(ngridmx),tstar(ngridmx)  ! friction velocity and friction potential temp
    344       REAL L_mo(ngridmx)
     344      REAL L_mo(ngridmx),wstar(ngridmx),vhf(ngridmx),vvv(ngridmx)
    345345      REAL zu2(ngridmx)
    346346c=======================================================================
     
    569569                 enddo
    570570              endif
     571           else
     572              zdtnlte(:,:)=0.
    571573           endif
    572574
     
    746748             IF (zh(ig,1) .lt. tsurf(ig)) THEN
    747749               wmax_th(ig)=1.
    748              ENDIF       
     750               hfmax_th(ig)=0.2
     751             ELSE
     752               wmax_th(ig)=0.
     753               hfmax_th(ig)=0.
     754             ENDIF     
    749755          ENDDO
    750756        ENDIF
     
    762768     $        zdum1,zdum2,zdh,pdq,zflubid,
    763769     $        zdudif,zdvdif,zdhdif,zdtsdif,q2,
    764      &        zdqdif,zdqsdif,wmax_th,zcdv,zcdh)
     770     &        zdqdif,zdqsdif,wmax_th,zcdv,zcdh,hfmax_th)
    765771
    766772#ifdef MESOSCALE
     
    853859        lmax_th(:)=0
    854860        wmax_th(:)=0.
     861        hfmax_th(:)=0.
    855862        lmax_th_out(:)=0.
    856863        end if
     
    18031810         z_out=0.
    18041811         if (calltherm .and. (z_out .gt. 0.)) then
    1805          call surflayer_interpol(ngrid,nlayer,z0,g,zzlay,zu,zv,wmax_th
    1806      &              ,tsurf,zh,z_out,Teta_out,u_out,ustar,tstar,L_mo)
    1807 
    1808          zu2(:)=sqrt(zu(:,1)*zu(:,1)+zv(:,1)*zv(:,1))
    1809          call WRITEDIAGFI(ngridmx,'sqrt(zu2)',
    1810      &              'horizontal velocity norm','m/s',
    1811      &                         2,zu2)
    1812 
    1813          call WRITEDIAGFI(ngridmx,'Teta_out',
    1814      &              'potential temperature at z_out','K',
    1815      &                         2,Teta_out)
    1816          call WRITEDIAGFI(ngridmx,'u_out',
    1817      &              'horizontal velocity norm at z_out','m/s',
    1818      &                         2,u_out)
    1819          call WRITEDIAGFI(ngridmx,'u*',
    1820      &              'friction velocity','m/s',
    1821      &                         2,ustar)
    1822          call WRITEDIAGFI(ngridmx,'teta*',
    1823      &              'friction potential temperature','K',
    1824      &                         2,tstar)
    1825          call WRITEDIAGFI(ngrid,'L',
    1826      &              'Monin Obukhov length','m',
    1827      &                         2,L_mo)
     1812
     1813         call pbl_parameters(ngrid,nlayer,z0,
     1814     & g,zzlay,zu,zv,wmax_th,hfmax_th,zmax_th,tsurf,zh,z_out,
     1815     & Teta_out,u_out,ustar,tstar,wstar,L_mo,vhf,vvv)
     1816
    18281817         else
    18291818           if((.not. calltherm).and.(z_out .gt. 0.)) then
     
    19141903         z_out=0.
    19151904         if (calltherm .and. (z_out .gt. 0.)) then
    1916          call surflayer_interpol(ngrid,nlayer,z0,g,zzlay,zu,zv,wmax_th
    1917      &              ,tsurf,zh,z_out,Teta_out,u_out,ustar,tstar,L_mo)
    1918 
    1919          zu2(:)=sqrt(zu(:,1)*zu(:,1)+zv(:,1)*zv(:,1))
    1920          call WRITEDIAGFI(ngridmx,'sqrt(zu2)',
    1921      &              'horizontal velocity norm','m/s',
    1922      &                         0,zu2)
    1923 
    1924          call WRITEDIAGFI(ngridmx,'Teta_out',
    1925      &              'potential temperature at z_out','K',
    1926      &                         0,Teta_out)
    1927          call WRITEDIAGFI(ngridmx,'u_out',
    1928      &              'horizontal velocity norm at z_out','m/s',
    1929      &                         0,u_out)
    1930          call WRITEDIAGFI(ngridmx,'u*',
    1931      &              'friction velocity','m/s',
    1932      &                         0,ustar)
    1933          call WRITEDIAGFI(ngridmx,'teta*',
    1934      &              'friction potential temperature','K',
    1935      &                         0,tstar)
     1905
     1906         call pbl_parameters(ngrid,nlayer,z0,
     1907     & g,zzlay,zu,zv,wmax_th,hfmax_th,zmax_th,tsurf,zh,z_out,
     1908     & Teta_out,u_out,ustar,tstar,wstar,L_mo,vhf,vvv)
     1909
    19361910         else
    19371911           if((.not. calltherm).and.(z_out .gt. 0.)) then
     
    19471921     &              'hauteur du thermique','point',
    19481922     &                         0,lmax_th_out)
     1923        call WRITEDIAGFI(ngridmx,'zmax_th',
     1924     &              'hauteur du thermique','m',
     1925     &                         0,zmax_th)
    19491926        call WRITEDIAGFI(ngridmx,'hfmax_th',
    19501927     &              'maximum TH heat flux','K.m/s',
Note: See TracChangeset for help on using the changeset viewer.