- Timestamp:
- Apr 30, 2025, 3:08:27 PM (5 weeks ago)
- Location:
- LMDZ6/branches/contrails/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails/libf/phylmd/lmdz_cloud_optics_prop.f90
r5618 r5639 173 173 REAL zflwp_var, zfiwp_var 174 174 REAL d_rei_dt 175 REAL pclc_cont , pclc_perscont175 REAL pclc_cont(klon,klev), pclc_perscont(klon,klev) 176 176 REAL rei_cont, rei_perscont 177 177 … … 574 574 reice_nocont(i,k) = 0. 575 575 pclc_nocont(i,k) = 0. 576 pclc_cont(i,k) = 0. 577 pclc_perscont(i,k) = 0. 576 578 pcltau_cont(i,k) = 0. 577 579 pclemi_cont(i,k) = 0. … … 688 690 689 691 IF ( contfra(i,k) .GT. 0.01 * seuil_neb ) THEN 690 pclc_cont = contfra(i,k)692 pclc_cont(i,k) = contfra(i,k) 691 693 rei_cont = re_ice_crystals_contrails * 1.E6 692 694 ELSE 693 pclc_cont = 0.695 pclc_cont(i,k) = 0. 694 696 rei_cont = 1. 695 697 ENDIF … … 698 700 IF ( perscontfra(i,k) .GT. 0.01 * seuil_neb ) THEN 699 701 !--Everything is the same but with contrails 700 pclc_perscont = perscontfra(i,k)702 pclc_perscont(i,k) = perscontfra(i,k) 701 703 702 704 tc = temp(i, k) - 273.15 … … 705 707 706 708 ELSE 707 pclc_perscont = 0.709 pclc_perscont(i,k) = 0. 708 710 rei_perscont = 1. 709 711 ENDIF … … 711 713 IF ( MAX(contfra(i,k), perscontfra(i,k)) .GT. 0.01 * seuil_neb ) THEN 712 714 713 rei = ( rei_cont * pclc_cont + rei_perscont * pclc_perscont) &714 / ( pclc_cont + pclc_perscont)715 rei = ( rei_cont * pclc_cont(i,k) + rei_perscont * pclc_perscont(i,k) ) & 716 / ( pclc_cont(i,k) + pclc_perscont(i,k) ) 715 717 zfiwp_var = 1000.*(xfiwc(i, k)-xfiwc_nocont(i, k))& 716 718 / (pclc(i, k)-pclc_nocont(i, k))*rhodz(i, k) … … 730 732 731 733 732 rei = ( rei_cont * pclc_cont + rei_perscont * pclc_perscont&734 rei = ( rei_cont * pclc_cont(i,k) + rei_perscont * pclc_perscont(i,k) & 733 735 + reice_nocont(i, k) * pclc_nocont(i, k) ) & 734 / ( pclc_cont + pclc_perscont+ pclc_nocont(i,k) )736 / ( pclc_cont(i,k) + pclc_perscont(i,k) + pclc_nocont(i,k) ) 735 737 736 738 zflwp_var = 1000.*xflwc(i, k)/pclc(i, k)*rhodz(i, k) … … 879 881 DO k = klev, 1, -1 880 882 DO i = 1, klon 881 zclear(i) = zclear(i)*(1.-max( contfra(i,k)+perscontfra(i,k),zcloud(i)))/&883 zclear(i) = zclear(i)*(1.-max(pclc_cont(i,k)+pclc_perscont(i,k),zcloud(i)))/& 882 884 (1.-min(real(zcloud(i),kind=8),1.-zepsec)) 883 885 pct_cont(i) = 1. - zclear(i) 884 zcloud(i) = contfra(i,k) + perscontfra(i,k)886 zcloud(i) = pclc_cont(i,k) + pclc_perscont(i,k) 885 887 IF (paprs(i,k)<prmhc) THEN 886 888 pch_nocont(i) = pch_nocont(i)*(1.-max(pclc_nocont(i,k),zcloudh(i)))/(1.-min(real( & -
LMDZ6/branches/contrails/libf/phylmd/lmdz_cloud_optics_prop_ini.f90
r5589 r5639 29 29 REAL, PARAMETER :: prlmc=680.*100. ! Pressure between low and medium level cloud in Pa 30 30 REAL, PARAMETER :: coef_froi=0.09, coef_chau =0.13 31 REAL, P ARAMETER:: seuil_neb=0.00131 REAL, PROTECTED :: seuil_neb=0.001 32 32 ! if iflag_t_glace=0, old values are used for liquid/ice partitionning: 33 33 REAL, PARAMETER :: t_glace_min_old = 258. … … 43 43 !$OMP THREADPRIVATE(rei_coef, rei_min_temp) 44 44 !$OMP THREADPRIVATE(zepsec) 45 !$OMP THREADPRIVATE(re_ice_crystals_contrails )45 !$OMP THREADPRIVATE(re_ice_crystals_contrails, seuil_neb) 46 46 47 47 … … 111 111 CALL getin_p('rei_min_temp',rei_min_temp) 112 112 CALL getin_p('re_ice_crystals_contrails', re_ice_crystals_contrails) 113 CALL getin_p('seuil_neb_rad', seuil_neb) 114 write(lunout,*)'seuil_neb_rad=',seuil_neb 113 115 114 116 -
LMDZ6/branches/contrails/libf/phylmd/lmdz_lscp_condensation.f90
r5634 r5639 456 456 IF ( ok_plane_contrail ) THEN 457 457 contfra(i) = MAX(0., MIN(cldfra(i), contfra_in(i))) 458 perscontfra(i) = MAX(0., MIN(cldfra(i) , perscontfra_in(i)))458 perscontfra(i) = MAX(0., MIN(cldfra(i) - contfra(i), perscontfra_in(i))) 459 459 qcont(i) = MAX(0., MIN(qcld(i), qva_in(i) + qia_in(i))) 460 460 … … 1275 1275 IF ( cldfra(i) .GE. ( 1. - cfcon(i) - eps ) ) THEN 1276 1276 contrails_conversion_factor = 1. 1277 ELSEIF ( contfra(i) .LT. 1.e-6 ) THEN 1278 contrails_conversion_factor = 1. 1277 1279 ELSE 1278 1280 contrails_conversion_factor = ( 1. - & -
LMDZ6/branches/contrails/libf/phylmd/phys_output_write_mod.F90
r5618 r5639 2198 2198 IF (ok_rad_contrail) THEN 2199 2199 IF (vars_defined) zx_tmp_fi2d = topsw_nocont * swradcorr 2200 CALL histwrite_phy(o_tops_nocont, topsw_nocont)2200 CALL histwrite_phy(o_tops_nocont, zx_tmp_fi2d) 2201 2201 CALL histwrite_phy(o_topl_nocont, toplw_nocont) 2202 2202 IF (vars_defined) zx_tmp_fi2d = topsw_nocont * swradcorr - toplw_nocont 2203 2203 CALL histwrite_phy(o_nettop_nocont, zx_tmp_fi2d) 2204 2204 IF (vars_defined) zx_tmp_fi2d = solsw_nocont * swradcorr 2205 CALL histwrite_phy(o_sols_nocont, solsw_nocont)2205 CALL histwrite_phy(o_sols_nocont, zx_tmp_fi2d) 2206 2206 CALL histwrite_phy(o_soll_nocont, sollw_nocont) 2207 2207 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.