Changeset 5437 for LMDZ6/trunk/libf/phylmd
- Timestamp:
- Dec 20, 2024, 2:10:34 PM (13 hours ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_lscp_condensation.f90
r5406 r5437 230 230 REAL :: dqvc_mix_sub, dqvc_mix_issr 231 231 REAL :: dqt_mix 232 REAL :: a_mix, bovera, N_cld_mix, L_mix232 REAL :: a_mix, bovera, Povera, N_cld_mix, L_mix 233 233 REAL :: envfra_mix, cldfra_mix 234 234 REAL :: L_shear, shear_fra … … 665 665 !--Clouds within the mesh are assumed to be ellipses. The length of the 666 666 !--semi-major axis is a and the length of the semi-minor axis is b. 667 !--N_cld_mix is the number of clouds within the mesh, and 667 !--N_cld_mix is the number of clouds in contact with clear sky, and can be non-integer. 668 !--In particular, it is 0 if cldfra = 1. 668 669 !--clouds_perim is the total perimeter of the clouds within the mesh, 669 670 !--not considering interfaces with other meshes (only the interfaces with clear … … 684 685 !-- b / a = bovera = MAX(0.1, cldfra) 685 686 bovera = MAX(0.1, cldfra(i)) 687 !--P / a is a function of b / a only, that we can calculate 688 !-- P / a = RPI * ( 3. * ( 1. + b / a ) - SQRT( (3. + b / a) * (1. + 3. * b / a) ) ) 689 Povera = RPI * ( 3. * (1. + bovera) - SQRT( (3. + bovera) * (1. + 3. * bovera) ) ) 686 690 !--The clouds perimeter is imposed using the formula from Morcrette 2012, 687 691 !--based on observations. 688 !-- clouds_perim_normalized = alpha * cldfra * ( 1. - cldfra ) = clouds_perim / ( norm_constant * cell_area ) 689 !-- 690 !--With all this, we have 691 !-- a = SQRT( cell_area * cldfra / ( b / a * N_cld_mix * RPI ) ) 692 !-- P = RPI * a * ( 3. * ( 1. + b / a ) - SQRT( (3. + b / a) * (1. + 3. * b / a) ) ) 693 !--and therefore, using the perimeter 694 !-- alpha * cldfra * ( 1. - cldfra ) * norm_constant * cell_area 695 !-- = N_cld_mix * RPI & 696 !-- * SQRT( cell_area * cldfra / ( b / a * N_cld_mix * RPI ) ) & 697 !-- * ( 3. * ( 1. + b / a ) - SQRT( (3. + b / a) * (1. + 3. * b / a) ) ) 698 !--and finally 699 N_cld_mix = coef_mixing_lscp * cldfra(i) * ( 1. - cldfra(i) )**2 & 700 * cell_area(i) * bovera / RPI & 701 / ( 3. * (1. + bovera) - SQRT( (3. + bovera) * (1. + 3. * bovera) ) )**2 702 !--where coef_mix_lscp = ( alpha * norm_constant )**2 703 !--N_cld_mix is the number of clouds in contact with clear sky, and can be non-integer 704 !--In particular, it is 0 if cldfra = 1 705 a_mix = SQRT( cell_area(i) * cldfra(i) / bovera / N_cld_mix / RPI ) 692 !-- clouds_perim / cell_area = N_cld_mix * ( P / a * a ) / cell_area = coef_mix_lscp * cldfra * ( 1. - cldfra ) 693 !--With cldfra = a * ( b / a * a ) * RPI * N_cld_mix / cell_area, we have: 694 !-- cldfra = a * b / a * RPI / (P / a) * coef_mix_lscp * cldfra * ( 1. - cldfra ) 695 !-- a = (P / a) / ( coef_mix_lscp * RPI * ( 1. - cldfra ) * (b / a) ) 696 a_mix = Povera / coef_mixing_lscp / RPI / ( 1. - cldfra(i) ) / bovera 697 !--and finally, 698 !-- N_cld_mix = coef_mix_lscp * cldfra * ( 1. - cldfra ) * cell_area / ( P / a * a ) 699 N_cld_mix = coef_mixing_lscp * cldfra(i) * ( 1. - cldfra(i) ) * cell_area(i) & 700 / Povera / a_mix 706 701 707 702 !--The time required for turbulent diffusion to homogenize a region of size -
LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.f90
r5412 r5437 195 195 !$OMP THREADPRIVATE(delta_hetfreez) 196 196 197 REAL, SAVE, PROTECTED :: coef_mixing_lscp= 9.E-8! [-] tuning coefficient for the mixing process197 REAL, SAVE, PROTECTED :: coef_mixing_lscp=1.E-3 ! [-] tuning coefficient for the mixing process 198 198 !$OMP THREADPRIVATE(coef_mixing_lscp) 199 199
Note: See TracChangeset
for help on using the changeset viewer.