- Timestamp:
- Mar 27, 2025, 4:10:17 PM (2 months ago)
- Location:
- LMDZ6/branches/contrails
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails/DefLists/field_def_lmdz.xml
r5593 r5598 926 926 <field id="potcontfraP" long_name="Fraction with pontential persistent contrail" unit="-" /> 927 927 <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" /> 929 930 <field id="dcontfracir" long_name="Linear contrail fraction to cirrus cloud fraction tendency" unit="-" /> 930 931 <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 12 12 icefrac_optics, dNovrN, ptconv,rnebcon, ccwcon, & 13 13 !--AB contrails 14 rcontrail, pclc_nocont, pcltau_nocont, pclemi_nocont, pch_nocont, &15 pc t_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) 16 16 17 17 ! Interface between the LMDZ physics monitor and the cloud properties calculation routines … … 94 94 95 95 !--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] 97 98 REAL, INTENT(OUT) :: pch_nocont(klon) ! 2D high cloud cover without contrails[-] 98 99 REAL, INTENT(OUT) :: pct_cont(klon) ! 2D total contrails cover[-] … … 133 134 icefrac_optics, dNovrN, ptconv,rnebcon, ccwcon, & 134 135 !--AB for contrails 135 rcontrail, pclc_nocont, pcltau_nocont, pclemi_nocont, pch_nocont, &136 pc t_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) 137 138 ELSE 138 139 CALL nuage (paprs, pplay, & -
LMDZ6/branches/contrails/libf/phylmd/lmdz_cloud_optics_prop.f90
r5589 r5598 11 11 icefrac_optics, dNovrN, ptconv, rnebcon, ccwcon, & 12 12 !--AB contrails 13 rcontrail, pclc_nocont, pcltau_nocont, pclemi_nocont, pch_nocont, &14 pc t_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) 15 15 16 16 USE lmdz_cloud_optics_prop_ini , ONLY : flag_aerosol, ok_cdnc … … 118 118 119 119 !--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] 121 122 REAL, INTENT(OUT) :: pch_nocont(klon) ! 2D high cloud cover without contrails[-] 122 123 REAL, INTENT(OUT) :: pct_cont(klon) ! 2D total contrails cover[-] … … 247 248 DO k = 1, klev 248 249 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) 251 252 ENDDO 252 253 ENDDO … … 393 394 !--vs contrail cirrus in the gridbox 394 395 !--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) 397 398 ENDIF 398 399 pcldtaupi(i, k) = 3.0/2.0*zflwp_var/rad_chaud_pi(i, k) + & … … 539 540 reice_nocont(i,k) = 0. 540 541 pclc_nocont(i,k) = 0. 542 pclc(i,k) = contfra(i,k) 541 543 pcltau_nocont(i,k) = 0. 542 544 pclemi_nocont(i, k) = 0. … … 552 554 !--vs contrail cirrus in the gridbox 553 555 !--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) 556 558 ENDIF 557 559 … … 703 705 DO k = klev, 1, -1 704 706 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( & 706 708 zcloud(i),kind=8),1.-zepsec)) 707 709 pct_cont(i) = 1. - zclear(i) 708 zcloud(i) = pclc(i, k)*rcontrail(i,k)710 zcloud(i) = contfra(i,k) 709 711 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)) 712 714 zcloudh(i) = pclc_nocont(i, k) 713 715 ENDIF -
LMDZ6/branches/contrails/libf/phylmd/lmdz_lscp.f90
r5593 r5598 25 25 dqvc_sub, dqvc_con, dqvc_mix, qsatl, qsati, & 26 26 rcont_seri, flight_dist, flight_h2o, & 27 contfra, Tcritcont, qcritcont,&27 contfra, radocond_cont, Tcritcont, qcritcont, & 28 28 potcontfraP, potcontfraNP, dcontfra_cir, dcf_avi, & 29 29 dqi_avi, dqvc_avi, cloudth_sth,cloudth_senv, & … … 239 239 240 240 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] 241 242 REAL, DIMENSION(klon,klev), INTENT(OUT) :: Tcritcont !--critical temperature for contrail formation [K] 242 243 REAL, DIMENSION(klon,klev), INTENT(OUT) :: qcritcont !--critical specific humidity for contrail formation [kg/kg] … … 432 433 dqvc_mix(:,:) = 0. 433 434 contfra(:,:) = 0. 435 radocond_cont(:,:)= 0. 434 436 Tcritcont(:,:) = missing_val 435 437 qcritcont(:,:) = missing_val … … 1139 1141 !--This barrier should never be activated 1140 1142 rcont_seri(i,k) = MIN(MAX(rcont_seri(i,k), 0.), 1.) 1143 radocond_cont(i,k) = radocond(i,k) * rcont_seri(i,k) 1141 1144 ENDIF 1142 1145 -
LMDZ6/branches/contrails/libf/phylmd/phys_local_var_mod.F90
r5589 r5598 679 679 REAL, SAVE, ALLOCATABLE :: potcontfraP(:,:), potcontfraNP(:,:) 680 680 !$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) 683 683 REAL, SAVE, ALLOCATABLE :: dcf_avi(:,:), dqi_avi(:,:), dqvc_avi(:,:) 684 684 !$OMP THREADPRIVATE(dcf_avi, dqi_avi, dqvc_avi) … … 1246 1246 ALLOCATE(Tcritcont(klon,klev), qcritcont(klon,klev)) 1247 1247 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)) 1249 1249 ALLOCATE(dcf_avi(klon,klev), dqi_avi(klon,klev), dqvc_avi(klon,klev)) 1250 1250 ALLOCATE(cldfra_nocont(klon,klev), cldtau_nocont(klon,klev), cldemi_nocont(klon,klev)) … … 1659 1659 DEALLOCATE(d_q_avi, rcont_seri, d_rcont_dyn, flight_dist, flight_h2o) 1660 1660 DEALLOCATE(Tcritcont, qcritcont, potcontfraP, potcontfraNP) 1661 DEALLOCATE(contfra, dcontfra_cir)1661 DEALLOCATE(contfra, radocond_cont, dcontfra_cir) 1662 1662 DEALLOCATE(dcf_avi, dqi_avi, dqvc_avi) 1663 1663 DEALLOCATE(cldfra_nocont, cldtau_nocont, cldemi_nocont) -
LMDZ6/branches/contrails/libf/phylmd/phys_output_ctrlout_mod.F90
r5589 r5598 2202 2202 TYPE(ctrl_out), SAVE :: o_contfra = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/),& 2203 2203 '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) /)) 2204 2206 TYPE(ctrl_out), SAVE :: o_dcontfracir = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/),& 2205 2207 'dcontfracir', 'Linear contrail fraction to cirrus cloud fraction tendency', '-', (/ ('', i=1,10)/)) -
LMDZ6/branches/contrails/libf/phylmd/phys_output_write_mod.F90
r5593 r5598 229 229 o_issrfra250to300, o_issrfra300to400, o_issrfra400to500, & 230 230 !-- LSCP - aviation variables 231 o_rcontseri, o_drcontdyn, o_dqavi, o_contfra, &231 o_rcontseri, o_drcontdyn, o_dqavi, o_contfra, o_qice_cont, & 232 232 o_Tcritcont, o_qcritcont, o_potcontfraP, o_potcontfraNP, & 233 233 o_dcontfracir, o_dcfavi, o_dqiavi, o_dqvcavi, o_flight_dist, o_flight_h2o, & … … 358 358 issrfra100to150, issrfra150to200, issrfra200to250, & 359 359 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, & 361 361 Tcritcont, qcritcont, potcontfraP, potcontfraNP, & 362 362 dcontfra_cir, dcf_avi, dqi_avi, dqvc_avi, flight_dist, flight_h2o, & … … 2156 2156 CALL histwrite_phy(o_potcontfraNP, potcontfraNP) 2157 2157 CALL histwrite_phy(o_contfra, contfra) 2158 CALL histwrite_phy(o_qice_cont, radocond_cont) 2158 2159 CALL histwrite_phy(o_dcontfracir, dcontfra_cir) 2159 2160 CALL histwrite_phy(o_dcfavi, dcf_avi) -
LMDZ6/branches/contrails/libf/phylmd/physiq_mod.F90
r5589 r5598 329 329 !-- LSCP - aviation and contrails variables 330 330 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, & 332 332 dcontfra_cir, dcf_avi, dqi_avi, dqvc_avi, & 333 333 cldfra_nocont, cldtau_nocont, cldemi_nocont, cldh_nocont, & … … 3930 3930 dqvc_adj, dqvc_sub, dqvc_con, dqvc_mix, qsatliq, qsatice, & 3931 3931 rcont_seri, flight_dist, flight_h2o, & 3932 contfra, Tcritcont, qcritcont, potcontfraP, &3932 contfra, radocond_cont, Tcritcont, qcritcont, potcontfraP, & 3933 3933 potcontfraNP, dcontfra_cir, dcf_avi, dqi_avi, dqvc_avi, & 3934 3934 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, & … … 4483 4483 zfice, dNovrN, ptconv, rnebcon, clwcon, & 4484 4484 !--AB contrails 4485 rcont_seri, cldfra_nocont, cldtau_nocont, cldemi_nocont, cldh_nocont, &4486 c ontcov, 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) 4487 4487 4488 4488 !
Note: See TracChangeset
for help on using the changeset viewer.