Changeset 5871


Ignore:
Timestamp:
Nov 18, 2025, 11:04:21 AM (3 weeks ago)
Author:
evignon
Message:

slight changes on blowing snow

Location:
LMDZ6/branches/lmdz-snow/libf/phylmd
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/lmdz-snow/libf/phylmd/lmdz_blowing_snow_ini.f90

    r5612 r5871  
    7070         CALL getin_p('fallv_bs',fallv_bs)
    7171
    72          coef_sub_bs =  0.1
     72         coef_sub_bs =  0.01
    7373         CALL getin_p('coef_sub_bs',coef_sub_bs)
    7474
     
    7979         CALL getin_p('iflag_sedim_bs',iflag_sedim_bs)
    8080
    81          r_bs=150.0e-6
     81         r_bs=50.0e-6
    8282         CALL getin_p('r_bs',r_bs)
    8383
  • LMDZ6/branches/lmdz-snow/libf/phylmd/lmdz_blowing_snow_sublim_sedim.f90

    r5268 r5871  
    22
    33contains
    4 subroutine blowing_snow_sublim_sedim(ngrid,nlay,dtime,temp,qv,qb,pplay,paprs,dtemp_bs,dqv_bs,dqb_bs,bsfl,precip_bs)
     4subroutine blowing_snow_sublim_sedim(ngrid,nlay,dtime,ustar,temp,qv,qb,pplay,paprs,dtemp_bs,dqv_bs,dqb_bs,bsfl,precip_bs)
    55
    66!==============================================================================
     
    2727integer, intent(in)                     :: ngrid,nlay
    2828real, intent(in)                        :: dtime
     29real, intent(in), dimension(ngrid)      :: ustar
    2930real, intent(in), dimension(ngrid,nlay) :: temp
    3031real, intent(in), dimension(ngrid,nlay) :: qv
     
    5556real                                     :: maxdqvmelt, rhoair, dz, dqbsedim
    5657real                                     :: delta_p, b_p, a_p, c_p, c_sub, qvsub
    57 real                                     :: p0, T0, Dv, Aprime, Bprime, Ka
     58real                                     :: p0, T0, Dv, Aprime, Bprime, Ka, radius0, radius
    5859real, dimension(ngrid)                   :: ztemp,zqv,zqb,zpres,qsi,dqsi,qsl,dqsl,qzero,sedim
    5960real, dimension(ngrid)                   :: zpaprsup, zpaprsdn, ztemp_up, zqb_up, zvelo
    60 real, dimension(ngrid,nlay)              :: temp_seri, qb_seri, qv_seri
     61real, dimension(ngrid,nlay)              :: temp_seri, qb_seri, qv_seri, zz
    6162
    6263!++++++++++++++++++++++++++++++++++++++++++++++++++
     
    7273precip_bs(:)=0.
    7374bsfl(:,:)=0.
     75zz(:,:)=0.
    7476
    7577
     
    8284      qv_seri(i,k)=qv(i,k)
    8385      qb_seri(i,k)=qb(i,k)
     86      zz(i,k)=zz(i,k)+(paprs(i,k)-paprs(i,k+1)) / (pplay(i,k)/RD/temp(i,k)*RG)
    8487   ENDDO
    8588ENDDO
     
    175178        zpaprsup(i)=paprs(i,k+1)
    176179        zpaprsdn(i)=paprs(i,k)
     180
     181    ! computation of blowing snow mean radius. Either constant value = r_bs if >0
     182    ! or use of the height-dependent formulation from Sauter et al. 2013 and Saigger et al. 2024
     183        IF (r_bs .GT. 0.) THEN
     184            radius=r_bs
     185        ELSE
     186            radius0=0.5*(ustar(i)*(7.8e-6)/0.036+31.e-6)
     187            radius=radius0*zz(i,k)**(-0.258)
     188        ENDIF
     189
    177190    ENDDO
    178191
     
    213226              ! Sublimation formulation for ice crystals from Pruppacher & Klett, Rutledge & Hobbs 1983
    214227              ! assuming monodispered crystal distrib
    215               ! dqb/dt_sub=-coef_sub_bs*(1-qv/qsi)*nc*8*r_bs/(Aprime+Bprime)
    216               ! assuming Mi=rhobs*4/3*pi*r_bs**3
    217               ! rhoair qb=nc*Mi -> nc=rhoair qb/Mi
    218               ! dqb/dt_sub=-coef_sub_bs*(1-qv/qsi)*6*rhoair*qb/(rhobs*pi*r_bs**2)/(Aprime+Bprime)
     228              ! dqb/dt_sub=-coef_sub_bs*(1-qv/qsi)*nc*8*radius/(Aprime+Bprime)
     229              ! assuming Mi=rhobs*4/3*pi*radius**3
     230              ! qb=nc*Mi -> nc=qb/Mi
     231              ! dqb/dt_sub=-coef_sub_bs*(1-qv/qsi)*6*qb/(rhobs*pi*radius**2)/(Aprime+Bprime)
    219232              ! dqb/dt_sub=-c_sub(1-qv/qsi)*qb
    220               ! c_sub=coef_sub_bs*6*rhoair/(rhobs*pi*r_bs**2)/(Aprime+Bprime)
     233              ! c_sub=coef_sub_bs*6/(rhobs*pi*radius**2)/(Aprime+Bprime)
    221234              !
    222235              ! Note the strong coupling between specific contents of water vapor and blowing snow during sublimation
     
    228241              IF (zqv(i) .LT. qsi(i)) THEN
    229242                 rhoair=zpres(i)/ztemp(i)/RD
    230                  Dv=0.0001*0.211*(p0/zpres(i))*((ztemp(i)/RTT)**1.94) ! water vapor diffusivity in air, SI
     243                 Dv=0.0001*0.211*(p0/zpres(i))*((ztemp(i)/RTT)**1.94)           ! water vapor diffusivity in air, SI
    231244                 Ka=(5.69+0.017*(ztemp(i)-RTT))*1.e-5*100.*4.184                ! thermal conductivity of the air, SI
    232245                 Aprime=RLSTT/Ka/ztemp(i)*(RLSTT/RV/ztemp(i) -1.)
    233246                 Bprime=1./(rhoair*Dv*qsi(i))
    234                  c_sub=coef_sub_bs*6.*rhoair/(rhobs*RPI*r_bs**2)/(Aprime+Bprime)
     247                 c_sub=coef_sub_bs*3./(rhobs*radius**2)/(Aprime+Bprime)
    235248                 c_p=-zqb(i)
    236249                 b_p=1.+c_sub*dtime-c_sub*dtime/qsi(i)*zqb(i)-c_sub*dtime/qsi(i)*zqv(i)
  • LMDZ6/branches/lmdz-snow/libf/phylmd/lmdz_call_blowing_snow.f90

    r5841 r5871  
    44contains
    55
    6 subroutine call_blowing_snow_sublim_sedim(ngrid,nlay,dtime,temp,q,qbs,pplay,paprs, &
     6subroutine call_blowing_snow_sublim_sedim(ngrid,nlay,dtime,ustar,temp,q,qbs,pplay,paprs, &
    77                                  dtemp_bs,dq_bs,dqbs_bs,bsfl,precip_bs)
    88
     
    1515integer, intent(in)                     :: ngrid,nlay
    1616real, intent(in)                        :: dtime
     17real, intent(in), dimension(ngrid)      :: ustar
    1718real, intent(in), dimension(ngrid,nlay) :: temp
    1819real, intent(in), dimension(ngrid,nlay) :: q
     
    3536
    3637
    37 call blowing_snow_sublim_sedim(ngrid,nlay,dtime,temp,q,qbs,pplay,paprs, &
     38call blowing_snow_sublim_sedim(ngrid,nlay,dtime,ustar,temp,q,qbs,pplay,paprs, &
    3839                                  dtemp_bs,dq_bs,dqbs_bs,bsfl,precip_bs)
    3940
  • LMDZ6/branches/lmdz-snow/libf/phylmd/physiq_mod.F90

    r5842 r5871  
    30983098    IF (ok_bs) THEN
    30993099
    3100      CALL call_blowing_snow_sublim_sedim(klon,klev,phys_tstep,t_seri,q_seri,qbs_seri,pplay,paprs, &
     3100     CALL call_blowing_snow_sublim_sedim(klon,klev,phys_tstep,zustar,t_seri,q_seri,qbs_seri,pplay,paprs, &
    31013101                                        d_t_bsss,d_q_bsss,d_qbs_bsss,bsfl,bs_fall)
    31023102
Note: See TracChangeset for help on using the changeset viewer.