Changeset 605 for trunk/LMDZ.MARS/libf/phymars/pbl_parameters.F
- Timestamp:
- Mar 29, 2012, 10:12:30 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/pbl_parameters.F
r566 r605 1 1 SUBROUTINE pbl_parameters(ngrid,nlay,ps,pplay,pz0, 2 2 & pg,zzlay,zzlev,pu,pv,wstar_in,hfmax,zmax,pts,ph,z_out,n_out, 3 & T eta_out,u_out,ustar,tstar,L_mo,vhf,vvv)3 & T_out,u_out,ustar,tstar,L_mo,vhf,vvv) 4 4 IMPLICIT NONE 5 5 !======================================================================= … … 67 67 ! -------- 68 68 69 REAL, INTENT(OUT) :: T eta_out(ngrid,n_out),u_out(ngrid,n_out)70 REAL T _out(ngrid,n_out)69 REAL, INTENT(OUT) :: T_out(ngrid,n_out),u_out(ngrid,n_out) 70 REAL Teta_out(ngrid,n_out) 71 71 REAL, INTENT(OUT) :: ustar(ngrid), tstar(ngrid) 72 72 REAL wstar(ngrid) … … 156 156 IF (zu2(ig) .ne. 0.) THEN 157 157 ! Richardson number formulation proposed by D.E. England et al. (1995) 158 rib(ig) = (pg/ph(ig,1))158 rib(ig) = (pg/pts(ig)) 159 159 & *sqrt(zzlev(ig,2)*pz0(ig)) 160 160 & *(((log(zzlev(ig,2)/pz0(ig)))**2)/(log(zzlev(ig,2)/pz0t))) … … 203 203 residual = abs(pz0t-pz0tcomp(ig)) 204 204 ite = ite+1 205 205 206 206 ENDDO ! of while 207 207 pz0t=0. … … 273 273 & ) 274 274 275 Teta_out(ig,n)= pts(ig)+(tstar(ig)/(prandtl(ig)*karman))*(275 Teta_out(ig,n)=MAX(pts(ig)+(tstar(ig)/(prandtl(ig)*karman))*( 276 276 & 2.*log(1.+sqrt(1.-16.*pz0tcomp(ig)/L_mo(ig))) 277 277 & -2.*log(1.+sqrt(1.-16.*zout/L_mo(ig))) 278 278 & + log(zout/pz0tcomp(ig)) 279 & 279 & ),ph(ig,1)) 280 280 281 281 ELSE … … 295 295 & ) 296 296 297 Teta_out(ig,n)= pts(ig)+(tstar(ig)/(prandtl(ig)*karman))*(297 Teta_out(ig,n)=MAX(pts(ig)+(tstar(ig)/(prandtl(ig)*karman))*( 298 298 & (8./L_mo(ig))*(zout-pz0tcomp(ig)) 299 299 & + (48./(L_mo(ig))**2)*(zout**2-pz0tcomp(ig)**2) 300 300 & + (1280./(3.*(L_mo(ig))**3))*(zout**3-pz0tcomp(ig)**3) 301 301 & + log(zout/pz0tcomp(ig)) 302 & 302 & ),ph(ig,1)) 303 303 304 304 ENDIF … … 317 317 318 318 IF ((.not.calltherm).and.(calladj)) THEN 319 Teta_out(:,n)=ph(:,1) 319 Teta_out(:,n)=ph(:,1) 320 u_out(:,n)=(sqrt(cdn(:))*sqrt(pu(:,1)*pu(:,1)+pv(:,1)*pv(:,1)) 321 & /karman)*log(zout/pz0(:)) 320 322 ENDIF 321 322 323 T_out(:,n) = Teta_out(:,n)*(exp( 323 324 & (zout/zzlay(:,1))*(log(pplay(:,1)/ps))
Note: See TracChangeset
for help on using the changeset viewer.