Ignore:
Timestamp:
Jul 19, 2012, 12:04:02 PM (12 years ago)
Author:
jleconte
Message:
  • Corrected precipitation evaporation scheme + snow fall (JL+BC)
  • Commented some unecessary writediagfi calls that where used for test.
Location:
trunk/LMDZ.GENERIC/libf/phystd
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/physiq.F90

    r728 r731  
    16441644        call writediagfi(ngrid,"v","Meridional wind","m.s-1",3,zv)
    16451645        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)
    16471647
    16481648!     Total energy balance diagnostics
    16491649        if(callrad.and.(.not.newtonian))then
    1650            call writediagfi(ngrid,'ALB','Surface albedo',' ',2,albedo)
     1650           call writediagfi(ngrid,"ALB","Surface albedo"," ",2,albedo)
    16511651           call writediagfi(ngrid,"ISR","incoming stellar rad.","W m-2",2,fluxtop_dn)
    16521652           call writediagfi(ngrid,"ASR","absorbed stellar rad.","W m-2",2,fluxabs_sw)
     
    16591659          if (calldifv) then
    16601660             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)
    16641664             call writediagfi(ngridmx,"sensibFlux","sensible heat flux","w.m^-2",2,sensibFlux)
    16651665          endif
    16661666          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)
    16691669          endif
    16701670          if(watercond) then
     
    16721672             call writediagfi(ngrid,"madjdE","heat from moistadj","W m-2",2,madjdE)
    16731673             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)
    16761676          endif
    16771677        endif
     
    17091709
    17101710          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)
    17141714             call writediagfi(ngrid,"CLFt","H2O column cloud fraction"," ",2,totcloudfrac)
    17151715          endif
  • trunk/LMDZ.GENERIC/libf/phystd/rain.F90

    r728 r731  
    102102
    103103!     Online functions
    104       REAL fallv, zzz ! falling speed of ice crystals
     104      REAL fallv, fall2v, zzz ! falling speed of ice crystals
    105105      fallv (zzz) = 3.29 * ((zzz)**0.16)
     106      fall2v (zzz) =10.6 * ((zzz)**0.31)  !for use with radii
    106107
    107108      DATA firstcall /.true./
     
    199200      DO k = 1, nlayermx
    200201         DO i = 1, ngridmx
    201             !l2c(i,k)=(pplev(i,k)-pplev(i,k+1))/(g*ptimestep)
    202202            l2c(i,k)=(pplev(i,k)-pplev(i,k+1))/g
    203203         ENDDO
     
    215215
    216216                  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
    218218                     zqev=MIN((zt(i,k)-Tsat(i,k))*RCPD*l2c(i,k)/RLVTT,zrfl(i))
    219219                     zrfl(i)=MAX(zrfl(i)-zqev,0.)
    220220                     d_q(i,k)=zqev/l2c(i,k)
    221221                     d_t(i,k) = - d_q(i,k) * RLVTT/RCPD
    222 !                    print*,zqev,zrfl(i),d_q(i,k),d_t(i,k)
    223222                  else
    224                      zqev = MAX (0.0, (zqs(i,k)-q(i,k)))/ptimestep! there is a bug here
     223                     zqev = MAX (0.0, (zqs(i,k)-q(i,k)))*l2c(i,k)/ptimestep !there was a bug here
    225224                     zqevt= 2.0e-5*(1.0-q(i,k)/zqs(i,k))    & !default was 2.e-5
    226225                        *sqrt(zrfl(i))*l2c(i,k)/pplay(i,k)*zt(i,k)*R ! BC modif here
     
    272271         elseif (precip_scheme.ge.2) then
    273272         
    274             DO i = 1, ngridmx
     273           DO i = 1, ngridmx
    275274               IF (rneb(i,k).GT.0.0) THEN
    276275                  zoliq(i) = ql(i,k)
     
    282281                  zneb(i)  = MAX(rneb(i,k), seuil_neb)
    283282               ENDIF
    284             ENDDO
     283           ENDDO
     284
     285 !recalculate liquid water particle radii
     286           call h2o_cloudrad(ql,reffh2oliq,reffh2oice)
    285287
    286288           SELECT CASE(precip_scheme)
     
    297299                     zrhol(i) = zrho(i) * zoliq(i) / zneb(i)
    298300                     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...
    301302                     ztot(i)  = zchau(i) + zfroi(i)
    302303
     
    320321                     zrhol(i) = zrho(i) * zoliq(i) / zneb(i)
    321322                     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...
    324324                     ztot(i)  = zchau(i) + zfroi(i)
    325325
     
    334334 !precip scheme modified from Boucher 95
    335335           CASE(4)
    336 
    337             !recalculate liquid water particle radii
    338             call h2o_cloudrad(ql,reffh2oliq,reffh2oice)
    339336
    340337            DO n = 1, ninter
     
    347344                     zrhol(i) = zrho(i) * zoliq(i) / zneb(i)
    348345                     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...
    351347                     ztot(i)  = zchau(i) + zfroi(i)
    352348
  • trunk/LMDZ.GENERIC/libf/phystd/turbdiff.F90

    r728 r731  
    517517                ! calculate dQsat / dT by finite differences
    518518                ! we cannot use the updated temperature value yet...
    519 !               if(qsat2(ig).gt.1.) then
    520 !                  qsat(ig)=1.
    521 !                  dqsat(ig)=0.
    522 !               else
    523 !                  qsat(ig)=qsat2(ig)
    524 !               endif
    525                enddo
    526 
    527                call writediagfi(ngrid,'qsatused','saturation mixing ratio at surface','',2,qsat)
    528                call writediagfi(ngrid,'psat','saturation pressure at surface','',2,psat)
    529519
    530520! coefficients for q
     
    729719         if (tracer) then
    730720            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)
    732721         endif
    733722      endif
Note: See TracChangeset for help on using the changeset viewer.