Ignore:
Timestamp:
May 3, 2023, 6:21:08 PM (17 months ago)
Author:
evignon
Message:

merge de la branche blowing snow vers la trunk
premiere tentative
Etienne

Location:
LMDZ6/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk

  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r4519 r4523  
    8484    USE atke_turbulence_ini_mod, ONLY : atke_ini
    8585    USE thermcell_ini_mod, ONLY : thermcell_ini
     86    USE blowing_snow_ini_mod, ONLY : blowing_snow_ini , qbst_bs
    8687    USE lscp_ini_mod, ONLY : lscp_ini
    8788
     
    144145       ! [Variables internes non sauvegardees de la physique]
    145146       ! Variables locales pour effectuer les appels en serie
    146        t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,tr_seri,rneb_seri, &
     147       t_seri,q_seri,ql_seri,qs_seri,qbs_seri,u_seri,v_seri,tr_seri,rneb_seri, &
    147148       rhcl, &       
    148149       ! Dynamic tendencies (diagnostics)
    149        d_t_dyn,d_q_dyn,d_ql_dyn,d_qs_dyn,d_u_dyn,d_v_dyn,d_tr_dyn,d_rneb_dyn, &
    150        d_q_dyn2d,d_ql_dyn2d,d_qs_dyn2d, &
     150       d_t_dyn,d_q_dyn,d_ql_dyn,d_qs_dyn,d_qbs_dyn,d_u_dyn,d_v_dyn,d_tr_dyn,d_rneb_dyn, &
     151       d_q_dyn2d,d_ql_dyn2d,d_qs_dyn2d,d_qbs_dyn2d, &
    151152       ! Physic tendencies
    152153       d_t_con,d_q_con,d_u_con,d_v_con, &
     
    165166       plul_st,plul_th, &
    166167       !
    167        d_t_vdf,d_q_vdf,d_u_vdf,d_v_vdf,d_t_diss, &
     168       d_t_vdf,d_q_vdf, d_qbs_vdf, d_u_vdf,d_v_vdf,d_t_diss, &
    168169       d_t_vdf_x, d_t_vdf_w, &
    169170       d_q_vdf_x, d_q_vdf_w, &
    170171       d_ts, &
     172       !
     173       d_t_bs,d_q_bs,d_qbs_bs, &
    171174       !
    172175!       d_t_oli,d_u_oli,d_v_oli, &
     
    216219       cldh, cldl,cldm, cldq, cldt,      &
    217220       JrNt,                             &
    218        dthmin, evap, fder, plcl, plfc,   &
    219        prw, prlw, prsw,                  &
     221       dthmin, evap, snowerosion,fder, plcl, plfc,   &
     222       prw, prlw, prsw, prbsw,                  &
    220223       s_lcl, s_pblh, s_pblt, s_therm,   &
    221224       cdragm, cdragh,                   &
     
    305308       fsolsw, wfbils, wfbilo,  &
    306309       wfevap, wfrain, wfsnow,  & 
    307        prfl, psfl, fraca, Vprecip,  &
     310       prfl, psfl,bsfl, fraca, Vprecip,  &
    308311       zw2,  &
    309312       !
     
    461464    !======================================================================
    462465    !
    463     ! indices de traceurs eau vapeur, liquide, glace, fraction nuageuse LS (optional)
    464     INTEGER,SAVE :: ivap, iliq, isol, irneb
    465 !$OMP THREADPRIVATE(ivap, iliq, isol, irneb)
     466    ! indices de traceurs eau vapeur, liquide, glace, fraction nuageuse LS (optional), blowing snow (optional)
     467    INTEGER,SAVE :: ivap, iliq, isol, irneb, ibs
     468!$OMP THREADPRIVATE(ivap, iliq, isol, irneb, ibs)
    466469    !
    467470    !
     
    834837    !XXX PB
    835838    REAL fluxq(klon,klev, nbsrf)   ! flux turbulent d'humidite
     839    REAL fluxqbs(klon,klev, nbsrf)   ! flux turbulent de neige soufflee
    836840    !
    837841    REAL zxfluxt(klon, klev)
    838842    REAL zxfluxq(klon, klev)
     843    REAL zxfluxqbs(klon,klev)
    839844    REAL zxfluxu(klon, klev)
    840845    REAL zxfluxv(klon, klev)
     
    920925    !
    921926    ! tendance nulles
    922     REAL, dimension(klon,klev):: du0, dv0, dt0, dq0, dql0, dqi0
     927    REAL, dimension(klon,klev):: du0, dv0, dt0, dq0, dql0, dqi0, dqbs0
    923928    REAL, dimension(klon)     :: dsig0, ddens0
    924929    INTEGER, dimension(klon)  :: wkoccur1
     
    10661071    REAL ztsol(klon)
    10671072    REAL q2m(klon,nbsrf)  ! humidite a 2m
    1068 
     1073    REAL fsnowerosion(klon,nbsrf) ! blowing snow flux at surface
     1074    REAL qbsfra  ! blowing snow fraction
    10691075    !IM: t2m, q2m, ustar, u10m, v10m et t2mincels, t2maxcels
    10701076    CHARACTER*40 t2mincels, t2maxcels       !t2m min., t2m max
     
    12761282       isol = strIdx(tracers(:)%name, addPhase('H2O', 's'))
    12771283       irneb= strIdx(tracers(:)%name, addPhase('H2O', 'r'))
     1284       ibs  = strIdx(tracers(:)%name, addPhase('H2O', 'b'))
    12781285       CALL init_etat0_limit_unstruct
    12791286       IF (.NOT. create_etat0_limit) CALL init_limit_read(days_elapsed)
     
    13251332       ENDIF
    13261333
    1327        IF (ok_ice_sursat.AND.(nqo.NE.4)) THEN
     1334       IF (ok_ice_sursat.AND.(nqo.LT.4)) THEN
    13281335          WRITE (lunout, *) ' ok_ice_sursat=y requires 4 H2O tracers ', &
    13291336               '(H2O_g, H2O_l, H2O_s, H2O_r) but nqo=', nqo, '. Might as well stop here.'
     
    13431350          CALL abort_physic(modname,abort_message,1)
    13441351       ENDIF
     1352
     1353        IF (ok_bs) THEN
     1354         IF ((ok_ice_sursat.AND.nqo .LT.5).OR.(.NOT.ok_ice_sursat.AND.nqo.LT.4)) THEN
     1355             WRITE (lunout, *) 'activation of blowing snow needs a specific H2O tracer', &
     1356                               'but nqo=', nqo
     1357             abort_message='see above'
     1358             CALL abort_physic(modname,abort_message, 1)
     1359         ENDIF
     1360        ENDIF
    13451361
    13461362       Ncvpaseq1 = 0
     
    17611777           CALL lscp_ini(pdtphys,ok_ice_sursat)
    17621778       endif
     1779       CALL blowing_snow_ini(prt_level,lunout, &
     1780                             RCPD, RLSTT, RLVTT, RLMLT, &
     1781                             RVTMP2, RTT,RD,RG)
     1782
    17631783!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    17641784
     
    17861806       CALL phys_output_write(itap, pdtphys, paprs, pphis,                    &
    17871807                              pplay, lmax_th, aerosol_couple,                 &
    1788                               ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ok_sync,&
     1808                              ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs,  ok_sync,&
    17891809                              ptconv, read_climoz, clevSTD,                   &
    17901810                              ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
     
    22572277    dql0(:,:)=0.
    22582278    dqi0(:,:)=0.
     2279    dqbs0(:,:)=0.
    22592280    dsig0(:) = 0.
    22602281    ddens0(:) = 0.
     
    23092330          q_seri(i,k)  = qx(i,k,ivap)
    23102331          ql_seri(i,k) = qx(i,k,iliq)
     2332          qbs_seri(i,k) = 0.
    23112333          !CR: ATTENTION, on rajoute la variable glace
    23122334          IF (nqo.EQ.2) THEN             !--vapour and liquid only
     
    23162338             qs_seri(i,k) = qx(i,k,isol)
    23172339             rneb_seri(i,k) = 0.
    2318           ELSE IF (nqo.EQ.4) THEN        !--vapour, liquid, ice and rneb
     2340          ELSE IF (nqo.GE.4) THEN        !--vapour, liquid, ice and rneb and blowing snow
    23192341             qs_seri(i,k) = qx(i,k,isol)
     2342             IF (ok_ice_sursat) THEN
    23202343             rneb_seri(i,k) = qx(i,k,irneb)
     2344             ENDIF
     2345             IF (ok_bs) THEN
     2346             qbs_seri(i,k)= qx(i,k,ibs)
     2347             ENDIF
     2348
    23212349          ENDIF
     2350
     2351
    23222352       ENDDO
    23232353    ENDDO
     
    23282358    qql1(:)=0.0
    23292359    DO k = 1, klev
    2330       qql1(:)=qql1(:)+(q_seri(:,k)+ql_seri(:,k)+qs_seri(:,k))*zmasse(:,k)
     2360      qql1(:)=qql1(:)+(q_seri(:,k)+ql_seri(:,k)+qs_seri(:,k)+qbs_seri(:,k))*zmasse(:,k)
    23312361    ENDDO
    23322362    ENDIF
     
    23842414       d_ql_dyn(:,:) = (ql_seri(:,:)-ql_ancien(:,:))/phys_tstep
    23852415       d_qs_dyn(:,:) = (qs_seri(:,:)-qs_ancien(:,:))/phys_tstep
     2416       d_qbs_dyn(:,:) = (qbs_seri(:,:)-qbs_ancien(:,:))/phys_tstep
    23862417       CALL water_int(klon,klev,q_seri,zmasse,zx_tmp_fi2d)
    23872418       d_q_dyn2d(:)=(zx_tmp_fi2d(:)-prw_ancien(:))/phys_tstep
     
    23902421       CALL water_int(klon,klev,qs_seri,zmasse,zx_tmp_fi2d)
    23912422       d_qs_dyn2d(:)=(zx_tmp_fi2d(:)-prsw_ancien(:))/phys_tstep
     2423       CALL water_int(klon,klev,qbs_seri,zmasse,zx_tmp_fi2d)
     2424       d_qbs_dyn2d(:)=(zx_tmp_fi2d(:)-prbsw_ancien(:))/phys_tstep
    23922425       ! !! RomP >>>   td dyn traceur
    23932426       IF (nqtot > nqo) d_tr_dyn(:,:,:)=(tr_seri(:,:,:)-tr_ancien(:,:,:))/phys_tstep
     
    24052438       d_ql_dyn2d(:) = 0.0
    24062439       d_qs_dyn2d(:) = 0.0
     2440       d_qbs_dyn2d(:)= 0.0
    24072441       ! !! RomP >>>   td dyn traceur
    24082442       IF (nqtot > nqo) d_tr_dyn(:,:,:)= 0.0
    24092443       ! !! RomP <<<
    24102444       d_rneb_dyn(:,:)=0.0
     2445       d_qbs_dyn(:,:)=0.0
    24112446       ancien_ok = .TRUE.
    24122447    ENDIF
     
    25242559
    25252560     CALL add_phys_tend &
    2526             (du0,dv0,d_t_eva,d_q_eva,d_ql_eva,d_qi_eva,paprs,&
     2561            (du0,dv0,d_t_eva,d_q_eva,d_ql_eva,d_qi_eva,dqbs0,paprs,&
    25272562               'eva',abortphy,flag_inhib_tend,itap,0)
    25282563    CALL prt_enerbil('eva',itap)
     
    26892724            longitude_deg, latitude_deg, rugoro,  zrmu0,      &
    26902725            sollwdown,    cldt,      &
    2691             rain_fall, snow_fall, solsw,   solswfdiff, sollw,     &
     2726            rain_fall, snow_fall, bs_fall, solsw,   solswfdiff, sollw,     &
    26922727            gustiness,                                &
    2693             t_seri,    q_seri,    u_seri,  v_seri,    &
     2728            t_seri,    q_seri,   qbs_seri, u_seri,  v_seri,    &
    26942729                                !nrlmd+jyg<
    26952730            wake_deltat, wake_deltaq, wake_cstar, wake_s, &
     
    27022737                                !albedo SB >>>
    27032738                                ! albsol1,   albsol2,   sens,    evap,      &
    2704             albsol_dir,   albsol_dif,   sens,    evap,  
     2739            albsol_dir,   albsol_dif,   sens,    evap, snowerosion,
    27052740                                !albedo SB <<<
    27062741            albsol3_lic,runoff,   snowhgt,   qsnow, to_ice, sissnow, &
    27072742            zxtsol,    zxfluxlat, zt2m,    qsat2m,  zn2mout, &
    2708             d_t_vdf,   d_q_vdf,   d_u_vdf, d_v_vdf, d_t_diss, &
     2743            d_t_vdf,   d_q_vdf, d_qbs_vdf,  d_u_vdf, d_v_vdf, d_t_diss, &
    27092744                                !nrlmd<
    27102745                                !jyg<
     
    27322767            fluxt,   fluxu,  fluxv, &
    27332768            dsens,     devap,     zxsnow, &
    2734             zxfluxt,   zxfluxq,   q2m,     fluxq, pbl_tke, &
     2769            zxfluxt,   zxfluxq,  zxfluxqbs,  q2m, fluxq, fluxqbs, pbl_tke, &
    27352770                                !nrlmd+jyg<
    27362771            wake_delta_pbl_TKE, &
     
    27572792       IF (klon_glo==1) THEN
    27582793          CALL add_pbl_tend &
    2759                (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,dqi0,paprs,&
     2794               (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,dqi0,d_qbs_vdf,paprs,&
    27602795               'vdf',abortphy,flag_inhib_tend,itap)
    27612796       ELSE
    27622797          CALL add_phys_tend &
    2763                (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,dqi0,paprs,&
     2798               (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,dqi0,d_qbs_vdf,paprs,&
    27642799               'vdf',abortphy,flag_inhib_tend,itap,0)
    27652800       ENDIF
    27662801       CALL prt_enerbil('vdf',itap)
     2802
    27672803       !--------------------------------------------------------------------
    27682804
     
    28152851
    28162852    ENDIF
     2853
     2854    ! ==================================================================
     2855    ! Blowing snow sublimation and sedimentation
     2856
     2857    d_t_bs(:,:)=0.
     2858    d_q_bs(:,:)=0.
     2859    d_qbs_bs(:,:)=0.
     2860    bsfl(:,:)=0.
     2861    bs_fall(:)=0.
     2862    IF (ok_bs) THEN
     2863
     2864     CALL call_blowing_snow_sublim_sedim(klon,klev,phys_tstep,t_seri,q_seri,qbs_seri,pplay,paprs, &
     2865                                        d_t_bs,d_q_bs,d_qbs_bs,bsfl,bs_fall)
     2866
     2867     CALL add_phys_tend &
     2868               (du0,dv0,d_t_bs,d_q_bs,dql0,dqi0,d_qbs_bs,paprs,&
     2869               'bs',abortphy,flag_inhib_tend,itap,0)
     2870
     2871    ENDIF
     2872
    28172873    ! =================================================================== c
    28182874    !   Calcul de Qsat
     
    32393295!!
    32403296!!
    3241     CALL add_phys_tend(d_u_con, d_v_con, d_t_con, d_q_con, dql0, dqi0, paprs, &
     3297    CALL add_phys_tend(d_u_con, d_v_con, d_t_con, d_q_con, dql0, dqi0, dqbs0, paprs, &
    32423298         'convection',abortphy,flag_inhib_tend,itap,0)
    32433299    CALL prt_enerbil('convection',itap)
     
    33703426       !-----------------------------------------------------------------------
    33713427       ! ajout des tendances des poches froides
    3372        CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0,dqi0,paprs,'wake', &
     3428       CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0,dqi0,dqbs0,paprs,'wake', &
    33733429            abortphy,flag_inhib_tend,itap,0)
    33743430       CALL prt_enerbil('wake',itap)
     
    35283584          !
    35293585          CALL add_phys_tend(d_u_ajs,d_v_ajs,d_t_ajs,d_q_ajs,  &
    3530                              dql0,dqi0,paprs,'thermals', abortphy,flag_inhib_tend,itap,0)
     3586                             dql0,dqi0,dqbs0,paprs,'thermals', abortphy,flag_inhib_tend,itap,0)
    35313587          CALL prt_enerbil('thermals',itap)
    35323588          !
     
    35903646          !--------------------------------------------------------------------
    35913647          ! ajout des tendances de l'ajustement sec ou des thermiques
    3592           CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0,dqi0,paprs, &
     3648          CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0,dqi0,dqbs0,paprs, &
    35933649               'ajsb',abortphy,flag_inhib_tend,itap,0)
    35943650          CALL prt_enerbil('ajsb',itap)
     
    36793735!    write(*,9000) "rcpv","rcw",rcpv,rcw,rcs,t_seri(1,1)
    36803736!-JLD
    3681     CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc,paprs, &
     3737    CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,d_qi_lsc,dqbs0,paprs, &
    36823738         'lsc',abortphy,flag_inhib_tend,itap,0)
    36833739    CALL prt_enerbil('lsc',itap)
     
    37023758    ENDIF
    37033759
    3704     !---------------------------------------------------------------------------
     3760
     3761!---------------------------------------------------------------------------
    37053762    DO k = 1, klev
    37063763       DO i = 1, klon
    37073764          cldfra(i,k) = rneb(i,k)
    37083765          !CR: a quoi ca sert? Faut-il ajouter qs_seri?
     3766          !EV: en effet etrange, j'ajouterais aussi qs_seri
     3767          !    plus largement, je nettoierais (enleverrais) ces lignes
    37093768          IF (.NOT.new_oliq) radocond(i,k) = ql_seri(i,k)
    37103769       ENDDO
    37113770    ENDDO
     3771
     3772
     3773    ! Option to activate the radiative effect of blowing snow (ok_rad_bs)
     3774    ! makes sense only if the new large scale condensation scheme is active
     3775    ! with the ok_icefra_lscp flag active as well
     3776
     3777    IF (ok_bs .AND. ok_rad_bs) THEN
     3778       IF (ok_new_lscp .AND. ok_icefra_lscp) THEN
     3779           DO k=1,klev
     3780             DO i=1,klon
     3781                radocond(i,k)=radocond(i,k)+qbs_seri(i,k)
     3782                picefra(i,k)=(radocond(i,k)*picefra(i,k)+qbs_seri(i,k))/(radocond(i,k))
     3783                qbsfra=min(qbs_seri(i,k)/qbst_bs,1.0)
     3784                cldfra(i,k)=max(cldfra(i,k),qbsfra)
     3785             ENDDO
     3786           ENDDO
     3787       ELSE
     3788          WRITE(lunout,*)"PAY ATTENTION, you try to activate the radiative effect of blowing snow"
     3789          WRITE(lunout,*)"with ok_new_lscp=false and/or ok_icefra_lscp=false"
     3790          abort_message='inconsistency in cloud phase for blowing snow'
     3791          CALL abort_physic(modname,abort_message,1)
     3792       ENDIF
     3793
     3794    ENDIF
     3795
    37123796    IF (check) THEN
    37133797       za = qcheck(klon,klev,paprs,q_seri,ql_seri,cell_area)
     
    45104594    ENDDO
    45114595
    4512     CALL add_phys_tend(du0,dv0,d_t_swr,dq0,dql0,dqi0,paprs,'SW',abortphy,flag_inhib_tend,itap,0)
     4596    CALL add_phys_tend(du0,dv0,d_t_swr,dq0,dql0,dqi0,dqbs0,paprs,'SW',abortphy,flag_inhib_tend,itap,0)
    45134597    CALL prt_enerbil('SW',itap)
    4514     CALL add_phys_tend(du0,dv0,d_t_lwr,dq0,dql0,dqi0,paprs,'LW',abortphy,flag_inhib_tend,itap,0)
     4598    CALL add_phys_tend(du0,dv0,d_t_lwr,dq0,dql0,dqi0,dqbs0,paprs,'LW',abortphy,flag_inhib_tend,itap,0)
    45154599    CALL prt_enerbil('LW',itap)
    45164600
     
    45874671       !-----------------------------------------------------------------------
    45884672       ! ajout des tendances de la trainee de l'orographie
    4589        CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0,dqi0,paprs,'oro', &
     4673       CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0,dqi0,dqbs0,paprs,'oro', &
    45904674            abortphy,flag_inhib_tend,itap,0)
    45914675       CALL prt_enerbil('oro',itap)
     
    46384722
    46394723       ! ajout des tendances de la portance de l'orographie
    4640        CALL add_phys_tend(d_u_lif, d_v_lif, d_t_lif, dq0, dql0, dqi0, paprs, &
     4724       CALL add_phys_tend(d_u_lif, d_v_lif, d_t_lif, dq0, dql0, dqi0, dqbs0,paprs, &
    46414725            'lif', abortphy,flag_inhib_tend,itap,0)
    46424726       CALL prt_enerbil('lif',itap)
     
    46634747       d_t_hin(:, :)=0.
    46644748       CALL add_phys_tend(du_gwd_hines, dv_gwd_hines, d_t_hin, dq0, dql0, &
    4665             dqi0, paprs, 'hin', abortphy,flag_inhib_tend,itap,0)
     4749            dqi0, dqbs0, paprs, 'hin', abortphy,flag_inhib_tend,itap,0)
    46664750       CALL prt_enerbil('hin',itap)
    46674751    ENDIF
     
    46814765       ENDDO
    46824766
    4683        CALL add_phys_tend(du_gwd_front, dv_gwd_front, dt0, dq0, dql0, dqi0, &
     4767       CALL add_phys_tend(du_gwd_front, dv_gwd_front, dt0, dq0, dql0, dqi0, dqbs0, &
    46844768            paprs, 'front_gwd_rando', abortphy,flag_inhib_tend,itap,0)
    46854769       CALL prt_enerbil('front_gwd_rando',itap)
     
    46904774            rain_fall + snow_fall, zustr_gwd_rando, zvstr_gwd_rando, &
    46914775            du_gwd_rando, dv_gwd_rando, east_gwstress, west_gwstress)
    4692        CALL add_phys_tend(du_gwd_rando, dv_gwd_rando, dt0, dq0, dql0, dqi0, &
     4776       CALL add_phys_tend(du_gwd_rando, dv_gwd_rando, dt0, dq0, dql0, dqi0, dqbs0, &
    46934777            paprs, 'flott_gwd_rando', abortphy,flag_inhib_tend,itap,0)
    46944778       CALL prt_enerbil('flott_gwd_rando',itap)
     
    47424826       ! ajout de la tendance d'humidite due au methane
    47434827       d_q_ch4_dtime(:,:) = d_q_ch4(:,:)*phys_tstep
    4744        CALL add_phys_tend(du0, dv0, dt0, d_q_ch4_dtime, dql0, dqi0, paprs, &
     4828       CALL add_phys_tend(du0, dv0, dt0, d_q_ch4_dtime, dql0, dqi0, dqbs0, paprs, &
    47454829            'q_ch4', abortphy,flag_inhib_tend,itap,0)
    47464830       d_q_ch4(:,:) = d_q_ch4_dtime(:,:)/phys_tstep
     
    50475131
    50485132     CALL add_phys_tend &
    5049             (du0,dv0,dt0,d_q_rep,d_ql_rep,d_qi_rep,paprs,&
     5133            (du0,dv0,dt0,d_q_rep,d_ql_rep,d_qi_rep,dqbs0,paprs,&
    50505134             'rep',abortphy,flag_inhib_tend,itap,0)
    50515135        IF (abortphy==1) Print*,'ERROR ABORT REP'
     
    51245208    !   prlw = colonne eau liquide
    51255209    !   prlw = colonne eau solide
     5210    !   prbsw = colonne neige soufflee
    51265211    prw(:) = 0.
    51275212    prlw(:) = 0.
    51285213    prsw(:) = 0.
     5214    prbsw(:) = 0.
    51295215    DO k = 1, klev
    51305216       prw(:)  = prw(:)  + q_seri(:,k)*zmasse(:,k)
    51315217       prlw(:) = prlw(:) + ql_seri(:,k)*zmasse(:,k)
    51325218       prsw(:) = prsw(:) + qs_seri(:,k)*zmasse(:,k)
     5219       prbsw(:)= prbsw(:) + qbs_seri(:,k)*zmasse(:,k)
    51335220    ENDDO
    51345221    !
     
    51895276          ENDIF
    51905277          !--ice_sursat: nqo=4, on ajoute rneb
    5191           IF (nqo == 4) THEN
     5278          IF (nqo.ge.4 .and. ok_ice_sursat) THEN
    51925279             d_qx(i,k,irneb) = ( rneb_seri(i,k) - qx(i,k,irneb) ) / phys_tstep
    51935280          ENDIF
     5281
     5282           IF (nqo.ge.4 .and. ok_bs) THEN
     5283             d_qx(i,k,ibs) = ( qbs_seri(i,k) - qx(i,k,ibs) ) / phys_tstep
     5284          ENDIF
     5285
    51945286       ENDDO
    51955287    ENDDO
     
    52385330    ql_ancien(:,:) = ql_seri(:,:)
    52395331    qs_ancien(:,:) = qs_seri(:,:)
     5332    qbs_ancien(:,:) = qbs_seri(:,:)
    52405333    rneb_ancien(:,:) = rneb_seri(:,:)
    52415334    CALL water_int(klon,klev,q_ancien,zmasse,prw_ancien)
    52425335    CALL water_int(klon,klev,ql_ancien,zmasse,prlw_ancien)
    52435336    CALL water_int(klon,klev,qs_ancien,zmasse,prsw_ancien)
     5337    CALL water_int(klon,klev,qbs_ancien,zmasse,prbsw_ancien)
    52445338    ! !! RomP >>>
    52455339    IF (nqtot > nqo) tr_ancien(:,:,:) = tr_seri(:,:,:)
     
    53665460    CALL phys_output_write(itap, pdtphys, paprs, pphis,  &
    53675461         pplay, lmax_th, aerosol_couple,                 &
    5368          ok_ade, ok_aie, ok_volcan, ivap, iliq, isol,    &
     5462         ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, ibs,   &
    53695463         ok_sync, ptconv, read_climoz, clevSTD,          &
    53705464         ptconvth, d_u, d_t, qx, d_qx, zmasse,           &
Note: See TracChangeset for help on using the changeset viewer.