Changeset 267
- Timestamp:
- Aug 8, 2011, 2:35:47 PM (14 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r256 r267 847 847 - vdifc.F Now takes into account sub-grid gustiness, evaluated from thermals activity (it's proxy being the maximum vertical velocity) 848 848 - Minor modification in meso_inc_les.F: u* is now taken from the new vdifc and not recomputed from a simple law 849 == 08/08/2011 == AC 850 - Formula correction for the Reynolds in vdif_cd : will affect the thermal roughness length. Results obtained with the precedent formula (previous commit) probably underestimate by about 1K the temperature in the mixing layer. 851 - Added a new subroutine to libf/phymars called surflayer_interpol.F. This routine can be called as a diagnostic for interpolation of horizontal velocity norm and temperature in the surface layer, in 1D or 3D. The output height is controlled by a parameter z_out, to be set in physiq.F. This might be later added to a .def file. z_out is set to 0. by default, resulting in no call to this subroutine. -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r263 r267 318 318 REAL time_phys 319 319 320 c Variables f rom thermal320 c Variables for PBL 321 321 322 322 REAL lmax_th_out(ngridmx),zmax_th(ngridmx) 323 323 REAL, SAVE :: wmax_th(ngridmx) 324 REAL , SAVE :: hfmax_th(ngridmx) !! AS: pourquoi en save ?324 REAL hfmax_th(ngridmx) 325 325 REAL pdu_th(ngridmx,nlayermx),pdv_th(ngridmx,nlayermx) 326 326 REAL pdt_th(ngridmx,nlayermx),pdq_th(ngridmx,nlayermx,nqmx) … … 328 328 REAL dtke_th(ngridmx,nlayermx+1) 329 329 REAL zcdv(ngridmx) 330 REAL Teta_out(ngridmx),u_out(ngridmx) ! Interpolated teta and u at z_out 331 REAL z_out ! height of interpolation between z0 and z1 332 REAL ustar(ngridmx),tstar(ngridmx) ! friction velocity and friction potential temp 333 REAL zu2(ngridmx) 330 334 c======================================================================= 331 335 … … 1553 1557 1554 1558 c ---------------------------------------------------------- 1559 c ---------------------------------------------------------- 1560 c PBL OUTPUS 1561 c ---------------------------------------------------------- 1562 c ---------------------------------------------------------- 1563 1564 1565 c ---------------------------------------------------------- 1566 c Outputs of surface layer 1567 c ---------------------------------------------------------- 1568 1569 1570 z_out=0. 1571 if (calltherm .and. (z_out .gt. 0.)) then 1572 call surflayer_interpol(ngrid,nlayer,z0,g,zzlay,zu,zv,wmax_th 1573 & ,tsurf,zt(:,:)*(zplay(:,:)/zplev(:,:))**rcp 1574 & ,z_out,Teta_out,u_out,ustar,tstar) 1575 1576 zu2(:)=sqrt(zu(:,1)*zu(:,1)+zv(:,1)*zv(:,1)) 1577 call WRITEDIAGFI(ngridmx,'sqrt(zu2)', 1578 & 'horizontal velocity norm','m/s', 1579 & 2,zu2) 1580 1581 call WRITEDIAGFI(ngridmx,'Teta_out', 1582 & 'potential temperature at z_out','K', 1583 & 2,Teta_out) 1584 call WRITEDIAGFI(ngridmx,'u_out', 1585 & 'horizontal velocity norm at z_out','m/s', 1586 & 2,u_out) 1587 call WRITEDIAGFI(ngridmx,'u*', 1588 & 'friction velocity','m/s', 1589 & 2,ustar) 1590 call WRITEDIAGFI(ngridmx,'teta*', 1591 & 'friction potential temperature','K', 1592 & 2,tstar) 1593 else 1594 if((.not. calltherm).and.(z_out .gt. 0.)) then 1595 print*, 'WARNING : no interpolation in surface-layer :' 1596 print*, 'Outputing surface-layer quantities without thermals 1597 & does not make sense' 1598 endif 1599 endif 1600 1601 c ---------------------------------------------------------- 1555 1602 c Outputs of thermals 1556 1603 c ---------------------------------------------------------- … … 1589 1636 1590 1637 c ---------------------------------------------------------- 1638 c ---------------------------------------------------------- 1639 c END OF PBL OUTPUS 1640 c ---------------------------------------------------------- 1641 c ---------------------------------------------------------- 1642 1643 1644 c ---------------------------------------------------------- 1591 1645 c Output in netcdf file "diagsoil.nc" for subterranean 1592 1646 c variables (output every "ecritphy", as for writediagfi) -
trunk/LMDZ.MARS/libf/phymars/vdif_cd.F
r265 r267 52 52 INTEGER ig 53 53 54 REAL karman 54 REAL karman,nu ! Von Karman constant and fluid kinematic viscosity 55 55 LOGICAL firstcal 56 DATA karman /.41/56 DATA karman,nu/.41,0.001/ 57 57 DATA firstcal/.true./ 58 SAVE karman 58 SAVE karman,nu 59 59 60 60 c Local(2): … … 179 179 endif 180 180 181 reynolds(ig)= sqrt(fm(ig))*sqrt(pu(ig,1)**2 + pv(ig,1)**2)*pz0(ig)182 & /(log(z1z0))181 reynolds(ig)=karman*sqrt(fm(ig))*sqrt(pu(ig,1)**2 + pv(ig,1)**2) 182 & *pz0(ig)/(log(z1z0)*nu) 183 183 pz0tcomp(ig)=pz0(ig)*exp(-karman*7.3* 184 184 & (reynolds(ig)**0.25)*(prandtl(ig)**0.5)) -
trunk/LMDZ.MARS/libf/phymars/vdifc.F
r265 r267 238 238 239 239 zu2=pu(ig,1)*pu(ig,1)+pv(ig,1)*pv(ig,1) 240 & +(1.2*wmax(ig))**2 241 240 & +(1.2*wmax(ig))**2 !subgrid gustiness is used to enhance surface flux only, and not u*,t* computations 241 242 242 zcdv(ig)=zcdv_true(ig)*sqrt(zu2) 243 243 zcdh(ig)=zcdh_true(ig)*sqrt(zu2)
Note: See TracChangeset
for help on using the changeset viewer.