Ignore:
Timestamp:
Mar 19, 2014, 3:14:30 PM (10 years ago)
Author:
fhourdin
Message:

Reactivation du calcul d'un zmax continu pour les thermiques

(thermcell_height.F90, thermcell_plume.F90, thermcell_dry.F90)
ouvre la voie à la réactivation d'une fermeture humide des thermiques
iflag_thermals_closure=2
(conf_phys_m.F90, thermcell.h, thermcell_main.F90)

Modification liée à la conservation de l'eau

(add_phys_tend.F90, add_pbl_tend.F90, physiq.F90)

Modifications liées au déclenchement stochastique

  1. possibilité de revenir à la Ale déterministe pour le criter ALE>|CIN| iflag_trig_bl=2, 1 par défaut)
  2. possibilité d'activer une fermeture statistique où ALP est divisé par la probabilité de déclenchement iflag_clos_bl=1 (0 par défaut, ancienne option 1 passée en =2)

Modification de l'entrainemement dans la version "stratocumulus" du

modèle du thermique (quand iflag_thermals_ed=8).
(modifie thermcell_plume.F90)

Catherine, Jean-Yves et Frédéric

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/physiq.F90

    r1992 r1998  
    17851785     IF (klon_glo==1) THEN
    17861786        CALL add_pbl_tend &
    1787           (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,'vdf')
     1787          (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,paprs,'vdf')
    17881788     ELSE
    17891789        CALL add_phys_tend &
    1790           (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,'vdf')
     1790          (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,paprs,'vdf')
    17911791     ENDIF
    17921792     !--------------------------------------------------------------------
     
    21552155  !-----------------------------------------------------------------------------------------
    21562156  ! ajout des tendances de la diffusion turbulente
    2157   CALL add_phys_tend(d_u_con,d_v_con,d_t_con,d_q_con,dql0,'con')
     2157  CALL add_phys_tend(d_u_con,d_v_con,d_t_con,d_q_con,dql0,paprs,'con')
    21582158  !-----------------------------------------------------------------------------------------
    21592159
     
    22722272     d_t_wake(:,:)=dt_wake(:,:)*dtime
    22732273     d_q_wake(:,:)=dq_wake(:,:)*dtime
    2274      CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0,'wake')
     2274     CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0,paprs,'wake')
    22752275     !-----------------------------------------------------------------------------------------
    22762276
     
    23722372           ENDIF
    23732373
     2374
    23742375           !----Initialisations
    23752376           do i=1,klon
     
    23892390                   s_trig,s2,n2
    23902391           ENDIF
     2392 
     2393!Option pour re-activer l'ancien calcul de Ale_bl (iflag_trig_bl=2)
     2394           IF (iflag_trig_bl.eq.1) then
    23912395
    23922396           !----Tirage al\'eatoire et calcul de ale_bl_trig
     
    24072411              endif
    24082412           enddo
     2413
     2414           ELSE IF (iflag_trig_bl.eq.2) then
     2415
     2416           do i=1,klon
     2417              if ( (Ale_bl(i) .gt. abs(cin(i))+1.e-10) )  then
     2418                 proba_notrig(i)=(1.-exp(-s_trig/s2(i)))** &
     2419                      (n2(i)*dtime/tau_trig(i))
     2420                 !        print *, 'proba_notrig(i) ',proba_notrig(i)
     2421                 if (random_notrig(i) .ge. proba_notrig(i)) then
     2422                    ale_bl_trig(i)=Ale_bl(i)
     2423                 else
     2424                    ale_bl_trig(i)=0.
     2425                 endif
     2426              else
     2427                 proba_notrig(i)=1.
     2428                 random_notrig(i)=0.
     2429                 ale_bl_trig(i)=0.
     2430              endif
     2431           enddo
     2432
     2433           ENDIF
     2434
    24092435           !
    24102436           IF (prt_level .GE. 10) THEN
     
    24162442
    24172443        !-----------Statistical closure-----------
    2418         if (iflag_clos_bl.ge.1) then
    2419 
     2444        if (iflag_clos_bl.eq.1) then
     2445
     2446           do i=1,klon
     2447!CR: alp probabiliste
     2448               if (ale_bl_trig(i).gt.0.) then
     2449                  alp_bl(i)=alp_bl(i)/(1.-min(proba_notrig(i),0.999))
     2450               endif
     2451           enddo       
     2452 
     2453        else if (iflag_clos_bl.eq.2) then
     2454
     2455!CR: alp calculee dans thermcell_main
    24202456           do i=1,klon
    24212457              alp_bl(i)=alp_bl_stat(i)
     
    24542490
    24552491        do i=1,klon
    2456            zmax_th(i)=pphi(i,lmax_th(i))/rg
     2492!           zmax_th(i)=pphi(i,lmax_th(i))/rg
     2493!CR:04/05/12:correction calcul zmax
     2494         zmax_th(i)=zmax0(i)
    24572495        enddo
    24582496
     
    24942532        !-----------------------------------------------------------------------------------------
    24952533        ! ajout des tendances de l'ajustement sec ou des thermiques
    2496         CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0,'ajsb')
     2534        CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0,paprs,'ajsb')
    24972535        d_t_ajs(:,:)=d_t_ajs(:,:)+d_t_ajsb(:,:)
    24982536        d_q_ajs(:,:)=d_q_ajs(:,:)+d_q_ajsb(:,:)
     
    25522590  !-----------------------------------------------------------------------------------------
    25532591  ! ajout des tendances de la diffusion turbulente
    2554   CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,'lsc')
     2592  CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,paprs,'lsc')
    25552593  !-----------------------------------------------------------------------------------------
    25562594  DO k = 1, klev
     
    32203258     !-----------------------------------------------------------------------------------------
    32213259     ! ajout des tendances de la trainee de l'orographie
    3222      CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0,'oro')
     3260     CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0,paprs,'oro')
    32233261     !-----------------------------------------------------------------------------------------
    32243262     !
     
    32663304     !-----------------------------------------------------------------------------------------
    32673305     ! ajout des tendances de la portance de l'orographie
    3268      CALL add_phys_tend(d_u_lif,d_v_lif,d_t_lif,dq0,dql0,'lif')
     3306     CALL add_phys_tend(d_u_lif,d_v_lif,d_t_lif,dq0,dql0,paprs,'lif')
    32693307     !-----------------------------------------------------------------------------------------
    32703308     !
     
    32803318     !
    32813319     !  ajout des tendances
    3282      CALL add_phys_tend(d_u_hin,d_v_hin,d_t_hin,dq0,dql0,'hin')
     3320     CALL add_phys_tend(d_u_hin,d_v_hin,d_t_hin,dq0,dql0,paprs,'hin')
    32833321
    32843322  ENDIF
     
    32883326          rain_fall + snow_fall, zustr_gwd_rando, zvstr_gwd_rando, &
    32893327          du_gwd_rando, dv_gwd_rando)
    3290      CALL add_phys_tend(du_gwd_rando, dv_gwd_rando, dt0, dq0, dql0, &
     3328     CALL add_phys_tend(du_gwd_rando, dv_gwd_rando, dt0, dq0, dql0,paprs, &
    32913329          'flott_gwd_rando')
    32923330  end if
Note: See TracChangeset for help on using the changeset viewer.