Changeset 731
- Timestamp:
- Jul 19, 2012, 12:04:02 PM (12 years ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r730 r731 738 738 gcm.e runs in Earth and Early Mars case with CO2 and H2O cycle + dust. 739 739 740 == 19/07/2012 == JL 741 - Corrected precipitation evaporation scheme + snow fall (JL+BC) 742 - Commented some unecessary writediagfi calls that where used for test. -
trunk/LMDZ.GENERIC/libf/phystd/physiq.F90
r728 r731 1644 1644 call writediagfi(ngrid,"v","Meridional wind","m.s-1",3,zv) 1645 1645 call writediagfi(ngrid,"w","Vertical wind","m.s-1",3,pw) 1646 call writediagfi(ngrid, 'p','Pressure','Pa',3,pplay)1646 call writediagfi(ngrid,"p","Pressure","Pa",3,pplay) 1647 1647 1648 1648 ! Total energy balance diagnostics 1649 1649 if(callrad.and.(.not.newtonian))then 1650 call writediagfi(ngrid, 'ALB','Surface albedo',' ',2,albedo)1650 call writediagfi(ngrid,"ALB","Surface albedo"," ",2,albedo) 1651 1651 call writediagfi(ngrid,"ISR","incoming stellar rad.","W m-2",2,fluxtop_dn) 1652 1652 call writediagfi(ngrid,"ASR","absorbed stellar rad.","W m-2",2,fluxabs_sw) … … 1659 1659 if (calldifv) then 1660 1660 call writediagfi(ngridmx,"q2","turbulent kinetic energy","J.kg^-1",3,q2) 1661 call writediagfi(ngridmx,"dEzdiff","turbulent diffusion heating (-sensible flux)","w.m^-2",3,dEzdiff)1662 call writediagfi(ngridmx,"dEdiff","integrated turbulent diffusion heating (-sensible flux)","w.m^-2",2,dEdiff)1663 call writediagfi(ngridmx,"dEdiffs","In TurbDiff (correc rad+latent heat) surf nrj change","w.m^-2",2,dEdiffs)1661 ! call writediagfi(ngridmx,"dEzdiff","turbulent diffusion heating (-sensible flux)","w.m^-2",3,dEzdiff) 1662 ! call writediagfi(ngridmx,"dEdiff","integrated turbulent diffusion heating (-sensible flux)","w.m^-2",2,dEdiff) 1663 ! call writediagfi(ngridmx,"dEdiffs","In TurbDiff (correc rad+latent heat) surf nrj change","w.m^-2",2,dEdiffs) 1664 1664 call writediagfi(ngridmx,"sensibFlux","sensible heat flux","w.m^-2",2,sensibFlux) 1665 1665 endif 1666 1666 if (corrk) then 1667 call writediagfi(ngridmx,"dEzradsw","radiative heating","w.m^-2",3,dEzradsw)1668 call writediagfi(ngridmx,"dEzradlw","radiative heating","w.m^-2",3,dEzradlw)1667 ! call writediagfi(ngridmx,"dEzradsw","radiative heating","w.m^-2",3,dEzradsw) 1668 ! call writediagfi(ngridmx,"dEzradlw","radiative heating","w.m^-2",3,dEzradlw) 1669 1669 endif 1670 1670 if(watercond) then … … 1672 1672 call writediagfi(ngrid,"madjdE","heat from moistadj","W m-2",2,madjdE) 1673 1673 call writediagfi(ngridmx,"RH","relative humidity"," ",3,RH) 1674 call writediagfi(ngridmx,"qsatatm","atm qsat"," ",3,qsat)1675 call writediagfi(ngridmx,"h2o_max_col","maximum H2O column amount","kg.m^-2",2,H2Omaxcol)1674 ! call writediagfi(ngridmx,"qsatatm","atm qsat"," ",3,qsat) 1675 ! call writediagfi(ngridmx,"h2o_max_col","maximum H2O column amount","kg.m^-2",2,H2Omaxcol) 1676 1676 endif 1677 1677 endif … … 1709 1709 1710 1710 if(watercond.or.CLFvarying)then 1711 call writediagfi(ngrid,"rneb_man","H2O cloud fraction (conv)"," ",3,rneb_man)1712 call writediagfi(ngrid,"rneb_lsc","H2O cloud fraction (large scale)"," ",3,rneb_lsc)1713 call writediagfi(ngrid,"CLF","H2O cloud fraction"," ",3,cloudfrac)1711 ! call writediagfi(ngrid,"rneb_man","H2O cloud fraction (conv)"," ",3,rneb_man) 1712 ! call writediagfi(ngrid,"rneb_lsc","H2O cloud fraction (large scale)"," ",3,rneb_lsc) 1713 ! call writediagfi(ngrid,"CLF","H2O cloud fraction"," ",3,cloudfrac) 1714 1714 call writediagfi(ngrid,"CLFt","H2O column cloud fraction"," ",2,totcloudfrac) 1715 1715 endif -
trunk/LMDZ.GENERIC/libf/phystd/rain.F90
r728 r731 102 102 103 103 ! Online functions 104 REAL fallv, zzz ! falling speed of ice crystals104 REAL fallv, fall2v, zzz ! falling speed of ice crystals 105 105 fallv (zzz) = 3.29 * ((zzz)**0.16) 106 fall2v (zzz) =10.6 * ((zzz)**0.31) !for use with radii 106 107 107 108 DATA firstcall /.true./ … … 199 200 DO k = 1, nlayermx 200 201 DO i = 1, ngridmx 201 !l2c(i,k)=(pplev(i,k)-pplev(i,k+1))/(g*ptimestep)202 202 l2c(i,k)=(pplev(i,k)-pplev(i,k+1))/g 203 203 ENDDO … … 215 215 216 216 if(zt(i,k).gt.Tsat(i,k))then 217 ! print*,'in rain',i,k,zrfl(i),zt(i,k),Tsat(i,k)217 ! treat the case where all liquid water should boil 218 218 zqev=MIN((zt(i,k)-Tsat(i,k))*RCPD*l2c(i,k)/RLVTT,zrfl(i)) 219 219 zrfl(i)=MAX(zrfl(i)-zqev,0.) 220 220 d_q(i,k)=zqev/l2c(i,k) 221 221 d_t(i,k) = - d_q(i,k) * RLVTT/RCPD 222 ! print*,zqev,zrfl(i),d_q(i,k),d_t(i,k)223 222 else 224 zqev = MAX (0.0, (zqs(i,k)-q(i,k))) /ptimestep! there is a bug here223 zqev = MAX (0.0, (zqs(i,k)-q(i,k)))*l2c(i,k)/ptimestep !there was a bug here 225 224 zqevt= 2.0e-5*(1.0-q(i,k)/zqs(i,k)) & !default was 2.e-5 226 225 *sqrt(zrfl(i))*l2c(i,k)/pplay(i,k)*zt(i,k)*R ! BC modif here … … 272 271 elseif (precip_scheme.ge.2) then 273 272 274 273 DO i = 1, ngridmx 275 274 IF (rneb(i,k).GT.0.0) THEN 276 275 zoliq(i) = ql(i,k) … … 282 281 zneb(i) = MAX(rneb(i,k), seuil_neb) 283 282 ENDIF 284 ENDDO 283 ENDDO 284 285 !recalculate liquid water particle radii 286 call h2o_cloudrad(ql,reffh2oliq,reffh2oice) 285 287 286 288 SELECT CASE(precip_scheme) … … 297 299 zrhol(i) = zrho(i) * zoliq(i) / zneb(i) 298 300 zfroi(i) = ptimestep/FLOAT(ninter)/zdz(i)*zoliq(i) & 299 *fallv(zrhol(i)) * (1.0-zfrac(i)) ! zfroi behaves oddly... 300 ! * 0.1 * (1.0-zfrac(i)) 301 *fall2v(reffh2oice(i,k)) * (1.0-zfrac(i)) ! zfroi behaves oddly... 301 302 ztot(i) = zchau(i) + zfroi(i) 302 303 … … 320 321 zrhol(i) = zrho(i) * zoliq(i) / zneb(i) 321 322 zfroi(i) = ptimestep/FLOAT(ninter)/zdz(i)*zoliq(i) & 322 *fallv(zrhol(i)) * (1.0-zfrac(i)) ! zfroi behaves oddly... 323 ! * 0.1 * (1.0-zfrac(i)) 323 *fall2v(reffh2oice(i,k)) * (1.0-zfrac(i)) ! zfroi behaves oddly... 324 324 ztot(i) = zchau(i) + zfroi(i) 325 325 … … 334 334 !precip scheme modified from Boucher 95 335 335 CASE(4) 336 337 !recalculate liquid water particle radii338 call h2o_cloudrad(ql,reffh2oliq,reffh2oice)339 336 340 337 DO n = 1, ninter … … 347 344 zrhol(i) = zrho(i) * zoliq(i) / zneb(i) 348 345 zfroi(i) = ptimestep/FLOAT(ninter)/zdz(i)*zoliq(i) & 349 *fallv(zrhol(i)) * (1.0-zfrac(i)) ! zfroi behaves oddly... 350 ! * 0.1 * (1.0-zfrac(i)) 346 *fall2v(reffh2oice(i,k)) * (1.0-zfrac(i)) ! zfroi behaves oddly... 351 347 ztot(i) = zchau(i) + zfroi(i) 352 348 -
trunk/LMDZ.GENERIC/libf/phystd/turbdiff.F90
r728 r731 517 517 ! calculate dQsat / dT by finite differences 518 518 ! we cannot use the updated temperature value yet... 519 ! if(qsat2(ig).gt.1.) then520 ! qsat(ig)=1.521 ! dqsat(ig)=0.522 ! else523 ! qsat(ig)=qsat2(ig)524 ! endif525 enddo526 527 call writediagfi(ngrid,'qsatused','saturation mixing ratio at surface','',2,qsat)528 call writediagfi(ngrid,'psat','saturation pressure at surface','',2,psat)529 519 530 520 ! coefficients for q … … 729 719 if (tracer) then 730 720 call writediagfi(ngrid,'dqevap','evaporated water vapor specific concentration','s-1',3,pdqevap) 731 call writediagfi(ngrid,'h2oevap','evaporated water vapor mass','kg/m2',2,zdmassevap)732 721 endif 733 722 endif
Note: See TracChangeset
for help on using the changeset viewer.