Changeset 5598 for LMDZ6


Ignore:
Timestamp:
Mar 27, 2025, 4:10:17 PM (2 months ago)
Author:
aborella
Message:

Removed convection from radiative effect of contrails

Location:
LMDZ6/branches/contrails
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/contrails/DefLists/field_def_lmdz.xml

    r5593 r5598  
    926926        <field id="potcontfraP"  long_name="Fraction with pontential persistent contrail"    unit="-" />
    927927        <field id="potcontfraNP" long_name="Fraction with potential non-persistent contrail"    unit="-" />
    928         <field id="contfra"    long_name="Linear contrail fraction"    unit="kg/kg" />
     928        <field id="contfra"    long_name="Linear contrail fraction"    unit="-" />
     929        <field id="qice_cont"  long_name="Contrails ice specific humidity seen by radiation"    unit="kg/kg" />
    929930        <field id="dcontfracir"  long_name="Linear contrail fraction to cirrus cloud fraction tendency"    unit="-" />
    930931        <field id="dcfavi"     long_name="Aviation cloud fraction tendency"    unit="s-1" />
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_call_cloud_optics_prop.f90

    r5589 r5598  
    1212    icefrac_optics, dNovrN, ptconv,rnebcon, ccwcon, &
    1313    !--AB contrails
    14     rcontrail, pclc_nocont, pcltau_nocont, pclemi_nocont, pch_nocont, &
    15     pct_cont, xfiwp_nocont, xfiwc_nocont, reice_nocont)
     14    contfra, radocond_cont, pclc_nocont, pcltau_nocont, pclemi_nocont, &
     15    pch_nocont, pct_cont, xfiwp_nocont, xfiwc_nocont, reice_nocont)
    1616
    1717  ! Interface between the LMDZ physics monitor and the cloud properties calculation routines
     
    9494
    9595  !--AB for contrails. All these are used / outputed only if ok_plane_contrail=y
    96   REAL, INTENT(IN) :: rcontrail(klon, klev)      ! ratio of contrails to total cloud fraction [-]
     96  REAL, INTENT(IN)  :: contfra(klon, klev)       ! contrails fraction [-]
     97  REAL, INTENT(IN)  :: radocond_cont(klon, klev) ! contrails condensed water seen by radiation [kg/kg]
    9798  REAL, INTENT(OUT) :: pch_nocont(klon)          ! 2D high cloud cover without contrails[-]
    9899  REAL, INTENT(OUT) :: pct_cont(klon)            ! 2D total contrails cover[-]
     
    133134    icefrac_optics, dNovrN, ptconv,rnebcon, ccwcon, &
    134135    !--AB for contrails
    135     rcontrail, pclc_nocont, pcltau_nocont, pclemi_nocont, pch_nocont, &
    136     pct_cont, xfiwp_nocont, xfiwc_nocont, reice_nocont)
     136    contfra, radocond_cont, pclc_nocont, pcltau_nocont, pclemi_nocont, &
     137    pch_nocont, pct_cont, xfiwp_nocont, xfiwc_nocont, reice_nocont)
    137138  ELSE
    138139    CALL nuage (paprs, pplay, &
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_cloud_optics_prop.f90

    r5589 r5598  
    1111    icefrac_optics, dNovrN, ptconv, rnebcon, ccwcon, &
    1212    !--AB contrails
    13     rcontrail, pclc_nocont, pcltau_nocont, pclemi_nocont, pch_nocont, &
    14     pct_cont, xfiwp_nocont, xfiwc_nocont, reice_nocont)
     13    contfra, radocond_cont, pclc_nocont, pcltau_nocont, pclemi_nocont, &
     14    pch_nocont, pct_cont, xfiwp_nocont, xfiwc_nocont, reice_nocont)
    1515
    1616  USE lmdz_cloud_optics_prop_ini , ONLY : flag_aerosol, ok_cdnc
     
    118118
    119119  !--AB for contrails. All these are used / outputed only if ok_plane_contrail=y
    120   REAL, INTENT(IN) :: rcontrail(klon, klev)      ! ratio of contrails to total cloud fraction [-]
     120  REAL, INTENT(IN)  :: contfra(klon, klev)       ! contrails fraction [-]
     121  REAL, INTENT(IN)  :: radocond_cont(klon, klev) ! contrails condensed water seen by radiation [kg/kg]
    121122  REAL, INTENT(OUT) :: pch_nocont(klon)          ! 2D high cloud cover without contrails[-]
    122123  REAL, INTENT(OUT) :: pct_cont(klon)            ! 2D total contrails cover[-]
     
    247248      DO k = 1, klev
    248249        DO i = 1, klon
    249           pclc_nocont(i,k) = pclc(i,k) * ( 1. - rcontrail(i,k) )
    250           xfiwc_nocont(i, k) = icefrac_optics(i, k)*radocond(i, k)*( 1. - rcontrail(i,k) )
     250          pclc_nocont(i,k) = pclc(i, k) - contfra(i, k)
     251          xfiwc_nocont(i, k) = icefrac_optics(i, k) * radocond(i, k) - radocond_cont(i, k)
    251252        ENDDO
    252253      ENDDO
     
    393394            !--vs contrail cirrus in the gridbox
    394395            !--Beware, re_ice_crystals_contrails is in m, while rei is in microns
    395             rei = rei * ( 1. - rcontrail(i,k) ) &
    396                 + re_ice_crystals_contrails * 1.E6 * rcontrail(i,k)
     396            rei = ( rei * pclc_nocont(i,k) &
     397                + re_ice_crystals_contrails * 1.E6 * contfra(i,k) ) / pclc(i,k)
    397398          ENDIF
    398399          pcldtaupi(i, k) = 3.0/2.0*zflwp_var/rad_chaud_pi(i, k) + &
     
    539540            reice_nocont(i,k) = 0.
    540541            pclc_nocont(i,k) = 0.
     542            pclc(i,k) = contfra(i,k)
    541543            pcltau_nocont(i,k) = 0.
    542544            pclemi_nocont(i, k) = 0.
     
    552554          !--vs contrail cirrus in the gridbox
    553555          !--Beware, re_ice_crystals_contrails is in m, while rei is in microns
    554           rei = rei * ( 1. - rcontrail(i,k) ) &
    555               + re_ice_crystals_contrails * 1.E6 * rcontrail(i,k)
     556          rei = ( rei * pclc_nocont(i,k) &
     557              + re_ice_crystals_contrails * 1.E6 * contfra(i,k) ) / pclc(i,k)
    556558        ENDIF
    557559
     
    703705    DO k = klev, 1, -1
    704706      DO i = 1, klon
    705         zclear(i) = zclear(i)*(1.-max(pclc(i,k)*rcontrail(i,k),zcloud(i)))/(1.-min(real( &
     707        zclear(i) = zclear(i)*(1.-max(contfra(i,k),zcloud(i)))/(1.-min(real( &
    706708          zcloud(i),kind=8),1.-zepsec))
    707709        pct_cont(i) = 1. - zclear(i)
    708         zcloud(i) = pclc(i, k)*rcontrail(i,k)
     710        zcloud(i) = contfra(i,k)
    709711        IF (paprs(i,k)<prmhc) THEN
    710           pch_nocont(i) = pch_nocont(i)*(1.-max(pclc_nocont(i,k),zcloudh(i)))/(1.-min(real(zcloudh &
    711             (i),kind=8),1.-zepsec))
     712          pch_nocont(i) = pch_nocont(i)*(1.-max(pclc_nocont(i,k),zcloudh(i)))/(1.-min(real( &
     713            zcloudh(i),kind=8),1.-zepsec))
    712714          zcloudh(i) = pclc_nocont(i, k)
    713715        ENDIF
  • LMDZ6/branches/contrails/libf/phylmd/lmdz_lscp.f90

    r5593 r5598  
    2525     dqvc_sub, dqvc_con, dqvc_mix, qsatl, qsati,        &
    2626     rcont_seri, flight_dist, flight_h2o,               &
    27      contfra, Tcritcont, qcritcont,                     &
     27     contfra, radocond_cont, Tcritcont, qcritcont,      &
    2828     potcontfraP, potcontfraNP, dcontfra_cir, dcf_avi,  &
    2929     dqi_avi, dqvc_avi, cloudth_sth,cloudth_senv,       &
     
    239239
    240240  REAL, DIMENSION(klon,klev),      INTENT(OUT)  :: contfra        !--linear contrail fraction [-]
     241  REAL, DIMENSION(klon,klev),      INTENT(OUT)  :: radocond_cont  !--condensed water in linear contrails used in the radiation scheme [kg/kg]
    241242  REAL, DIMENSION(klon,klev),      INTENT(OUT)  :: Tcritcont      !--critical temperature for contrail formation [K]
    242243  REAL, DIMENSION(klon,klev),      INTENT(OUT)  :: qcritcont      !--critical specific humidity for contrail formation [kg/kg]
     
    432433dqvc_mix(:,:)   = 0.
    433434contfra(:,:)    = 0.
     435radocond_cont(:,:)= 0.
    434436Tcritcont(:,:)  = missing_val
    435437qcritcont(:,:)  = missing_val
     
    11391141          !--This barrier should never be activated
    11401142          rcont_seri(i,k) = MIN(MAX(rcont_seri(i,k), 0.), 1.)
     1143          radocond_cont(i,k) = radocond(i,k) * rcont_seri(i,k)
    11411144        ENDIF
    11421145
  • LMDZ6/branches/contrails/libf/phylmd/phys_local_var_mod.F90

    r5589 r5598  
    679679      REAL, SAVE, ALLOCATABLE :: potcontfraP(:,:), potcontfraNP(:,:)
    680680      !$OMP THREADPRIVATE(potcontfraP, potcontfraNP)
    681       REAL, SAVE, ALLOCATABLE :: contfra(:,:), dcontfra_cir(:,:)
    682       !$OMP THREADPRIVATE(contfra, dcontfra_cir)
     681      REAL, SAVE, ALLOCATABLE :: contfra(:,:), radocond_cont(:,:), dcontfra_cir(:,:)
     682      !$OMP THREADPRIVATE(contfra, radocond_cont, dcontfra_cir)
    683683      REAL, SAVE, ALLOCATABLE :: dcf_avi(:,:), dqi_avi(:,:), dqvc_avi(:,:)
    684684      !$OMP THREADPRIVATE(dcf_avi, dqi_avi, dqvc_avi)
     
    12461246      ALLOCATE(Tcritcont(klon,klev), qcritcont(klon,klev))
    12471247      ALLOCATE(potcontfraP(klon,klev), potcontfraNP(klon,klev))
    1248       ALLOCATE(contfra(klon,klev), dcontfra_cir(klon,klev))
     1248      ALLOCATE(contfra(klon,klev), radocond_cont(klon,klev), dcontfra_cir(klon,klev))
    12491249      ALLOCATE(dcf_avi(klon,klev), dqi_avi(klon,klev), dqvc_avi(klon,klev))
    12501250      ALLOCATE(cldfra_nocont(klon,klev), cldtau_nocont(klon,klev), cldemi_nocont(klon,klev))
     
    16591659      DEALLOCATE(d_q_avi, rcont_seri, d_rcont_dyn, flight_dist, flight_h2o)
    16601660      DEALLOCATE(Tcritcont, qcritcont, potcontfraP, potcontfraNP)
    1661       DEALLOCATE(contfra, dcontfra_cir)
     1661      DEALLOCATE(contfra, radocond_cont, dcontfra_cir)
    16621662      DEALLOCATE(dcf_avi, dqi_avi, dqvc_avi)
    16631663      DEALLOCATE(cldfra_nocont, cldtau_nocont, cldemi_nocont)
  • LMDZ6/branches/contrails/libf/phylmd/phys_output_ctrlout_mod.F90

    r5589 r5598  
    22022202  TYPE(ctrl_out), SAVE :: o_contfra = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/),&
    22032203    'contfra', 'Linear contrail fraction', '-', (/ ('', i=1,10)/))
     2204  TYPE(ctrl_out), SAVE :: o_qice_cont = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), &
     2205    'qice_cont', 'Linear contrails ice specific humidity seen by radiation', 'kg/kg', (/ ('', i=1, 10) /))
    22042206  TYPE(ctrl_out), SAVE :: o_dcontfracir = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/),&
    22052207    'dcontfracir', 'Linear contrail fraction to cirrus cloud fraction tendency', '-', (/ ('', i=1,10)/))
  • LMDZ6/branches/contrails/libf/phylmd/phys_output_write_mod.F90

    r5593 r5598  
    229229         o_issrfra250to300, o_issrfra300to400, o_issrfra400to500, &
    230230!-- LSCP - aviation variables
    231          o_rcontseri, o_drcontdyn, o_dqavi, o_contfra, &
     231         o_rcontseri, o_drcontdyn, o_dqavi, o_contfra, o_qice_cont, &
    232232         o_Tcritcont, o_qcritcont, o_potcontfraP, o_potcontfraNP, &
    233233         o_dcontfracir, o_dcfavi, o_dqiavi, o_dqvcavi, o_flight_dist, o_flight_h2o, &
     
    358358         issrfra100to150, issrfra150to200, issrfra200to250, &
    359359         issrfra250to300, issrfra300to400, issrfra400to500, &
    360          rcont_seri, d_rcont_dyn, d_q_avi, contfra, &
     360         rcont_seri, d_rcont_dyn, d_q_avi, contfra, radocond_cont, &
    361361         Tcritcont, qcritcont, potcontfraP, potcontfraNP, &
    362362         dcontfra_cir, dcf_avi, dqi_avi, dqvc_avi, flight_dist, flight_h2o, &
     
    21562156         CALL histwrite_phy(o_potcontfraNP, potcontfraNP)
    21572157         CALL histwrite_phy(o_contfra, contfra)
     2158         CALL histwrite_phy(o_qice_cont, radocond_cont)
    21582159         CALL histwrite_phy(o_dcontfracir, dcontfra_cir)
    21592160         CALL histwrite_phy(o_dcfavi, dcf_avi)
  • LMDZ6/branches/contrails/libf/phylmd/physiq_mod.F90

    r5589 r5598  
    329329       !-- LSCP - aviation and contrails variables
    330330       d_q_avi, rcont_seri, d_rcont_dyn, flight_dist, flight_h2o, &
    331        contfra, Tcritcont, qcritcont, potcontfraP, potcontfraNP, &
     331       contfra, radocond_cont, Tcritcont, qcritcont, potcontfraP, potcontfraNP, &
    332332       dcontfra_cir, dcf_avi, dqi_avi, dqvc_avi, &
    333333       cldfra_nocont, cldtau_nocont, cldemi_nocont, cldh_nocont, &
     
    39303930         dqvc_adj, dqvc_sub, dqvc_con, dqvc_mix, qsatliq, qsatice, &
    39313931         rcont_seri, flight_dist, flight_h2o, &
    3932          contfra, Tcritcont, qcritcont, potcontfraP, &
     3932         contfra, radocond_cont, Tcritcont, qcritcont, potcontfraP, &
    39333933         potcontfraNP, dcontfra_cir, dcf_avi, dqi_avi, dqvc_avi, &
    39343934         cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, &
     
    44834483               zfice, dNovrN, ptconv, rnebcon, clwcon, &
    44844484               !--AB contrails
    4485                rcont_seri, cldfra_nocont, cldtau_nocont, cldemi_nocont, cldh_nocont, &
    4486                contcov, fiwp_nocont, fiwc_nocont, ref_ice_nocont)
     4485               contfra, radocond_cont, cldfra_nocont, cldtau_nocont, cldemi_nocont, &
     4486               cldh_nocont, contcov, fiwp_nocont, fiwc_nocont, ref_ice_nocont)
    44874487
    44884488       !
Note: See TracChangeset for help on using the changeset viewer.