Changeset 3856 for LMDZ6


Ignore:
Timestamp:
Feb 25, 2021, 7:02:16 PM (3 years ago)
Author:
fhourdin
Message:

Introduction d'un ratqs (largeur relative de la distribution sous maille de l'eau)
interactif (travail de Louis D'Alençon, Frédéric Hourdin et Catherine Rio).
Contrôlé par le flag iflag_ratqs=10 (précédemment 4).
N'affecte pas les calculs si iflag_ratqs=4.
Fredho

Location:
LMDZ6/trunk/libf/phylmd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/calcratqs.F90

    r2534 r3856  
    22           iflag_ratqs,iflag_con,iflag_cld_th,pdtphys, &
    33           ratqsbas,ratqshaut,ratqsp0,ratqsdp, &
    4            tau_ratqs,fact_cldcon,   &
     4           tau_ratqs,fact_cldcon,wake_s, wake_deltaq,   &
    55           ptconv,ptconvth,clwcon0th, rnebcon0th,      &
    66           paprs,pplay,q_seri,zqsat,fm_therm,          &
    7            ratqs,ratqsc)
     7           ratqs,ratqsc,ratqs_inter)
    88
    99implicit none
     
    2727logical, dimension(klon,klev),intent(in) :: ptconv
    2828real, dimension(klon,klev),intent(in) :: rnebcon0th,clwcon0th
    29 
     29real, dimension(klon,klev),intent(in) :: wake_deltaq,wake_s
    3030! Output
    31 real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc
     31real, dimension(klon,klev),intent(inout) :: ratqs,ratqsc,ratqs_inter
    3232logical, dimension(klon,klev),intent(inout) :: ptconvth
    3333
     
    124124         enddo
    125125
    126       else if (iflag_ratqs==4) then
     126      else if (iflag_ratqs==4) then 
    127127         do k=1,klev
    128128           ratqss(:,k)=ratqsbas+0.5*(ratqshaut-ratqsbas) &
     
    131131         enddo
    132132
     133      else if (iflag_ratqs==10) then ! ratqs interactif dépendant de la présence de poches froides
     134         call calcratqs_inter(klon,klev,pdtphys,ratqsbas,wake_deltaq,wake_s,q_seri,ratqs_inter)
     135         do k=1,klev
     136            do i=1, klon
     137                ratqss(i,k)=ratqs_inter(i,k)+0.5*(ratqshaut-ratqs_inter(i,k)) &
     138                *( tanh( (ratqsp0-pplay(i,k))/ratqsdp) + 1.)
     139            enddo
     140         enddo
     141
    133142      endif
    134 
    135 
    136143
    137144
  • LMDZ6/trunk/libf/phylmd/phyetat0.F90

    r3815 r3856  
    1919       wake_s, wake_dens, zgam, zmax0, zmea, zpic, zsig, &
    2020       zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m, treedrg, &
    21        ale_wake, ale_bl_stat, ds_ns, dt_ns, delta_sst, delta_sal
     21       ale_wake, ale_bl_stat, ds_ns, dt_ns, delta_sst, delta_sal, ratqs_inter
    2222!FC
    2323  USE geometry_mod, ONLY : longitude_deg, latitude_deg
     
    435435  found=phyetat0_get(1,ale_bl_stat,"ALE_BL_STAT","ALE_BL_STAT",0.)
    436436
     437! fisrtilp/Clouds
     438  found=phyetat0_get(klev,ratqs_inter,"RATQS_INTER","Relative width of the lsc sugrid scale water",ratqs_inter)
     439
    437440!===========================================
    438441  ! Read and send field trs to traclmdz
  • LMDZ6/trunk/libf/phylmd/phyredem.F90

    r3815 r3856  
    2828                                du_gwd_rando, du_gwd_front, u10m, v10m, &
    2929                                treedrg, solswfdiff, delta_sal, ds_ns, dt_ns, &
    30                                 delta_sst
     30                                delta_sst, ratqs_inter
    3131
    3232  USE geometry_mod, ONLY : longitude_deg, latitude_deg
     
    303303
    304304    CALL put_field(pass,"ALE_BL_STAT", "ALE_BL_STAT", ale_bl_stat)
     305
     306
     307    ! fisrtilp/clouds
     308    CALL put_field(pass,"RATQS_INTER","Relative width of the lsc sugrid scale water",ratqs_inter)
    305309
    306310
  • LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90

    r3815 r3856  
    418418!$OMP THREADPRIVATE(ccm)
    419419
    420 !!! nrlmd le 10/04/2012
    421420      REAL,SAVE,ALLOCATABLE :: ale_bl_trig(:)
    422421!$OMP THREADPRIVATE(ale_bl_trig)
    423 !!! fin nrlmd le 10/04/2012
     422
     423      REAL,SAVE,ALLOCATABLE :: ratqs_inter(:,:)
     424!$OMP THREADPRIVATE(ratqs_inter)
    424425
    425426      REAL, ALLOCATABLE, SAVE:: du_gwd_rando(:, :), du_gwd_front(:, :)
     
    648649      ALLOCATE(cg_aero_lw_rrtm(klon,klev,2,nbands_lw_rrtm))
    649650      ALLOCATE(ccm(klon,klev,nbands))
    650 
    651 !!! nrlmd le 10/04/2012
    652651      ALLOCATE(ale_bl_trig(klon))
    653 !!! fin nrlmd le 10/04/2012
     652      ALLOCATE(ratqs_inter(klon,klev))
    654653      IF (ok_gwd_rando) THEN
    655654        ALLOCATE(du_gwd_rando(klon, klev))
     
    794793      if (ok_gwd_rando) DEALLOCATE(du_gwd_rando)
    795794      if (.not. ok_hines .and. ok_gwd_rando) DEALLOCATE(du_gwd_front)
    796        
    797 !!! nrlmd le 10/04/2012
    798795      DEALLOCATE(ale_bl_trig)
    799 !!! fin nrlmd le 10/04/2012
     796      DEALLOCATE(ratqs_inter)
    800797
    801798      if (activate_ocean_skin >= 1) deALLOCATE(delta_sal, ds_ns, dt_ns, &
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r3817 r3856  
    34473447         iflag_ratqs,iflag_con,iflag_cld_th,pdtphys,  &
    34483448         ratqsbas,ratqshaut,ratqsp0, ratqsdp, &
    3449          tau_ratqs,fact_cldcon,   &
     3449         tau_ratqs,fact_cldcon,wake_s, wake_deltaq,   &
    34503450         ptconv,ptconvth,clwcon0th, rnebcon0th,     &
    34513451         paprs,pplay,q_seri,zqsat,fm_therm, &
    3452          ratqs,ratqsc)
    3453 
     3452         ratqs,ratqsc,ratqs_inter)
    34543453
    34553454    !
Note: See TracChangeset for help on using the changeset viewer.