Changeset 4823 for LMDZ6/trunk/libf
- Timestamp:
- Feb 15, 2024, 9:58:39 PM (10 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_lscp_poprecip.F90
r4819 r4823 691 691 * capa_snowflake / RLMLT * coef_ventil & 692 692 * MAX(0., temp_wetbulb - RTT) * dtime 693 ENDIF 693 dqsclrmelt = MAX( dqsclrmelt , -snowclr(i) / hum_to_flux(i)) 694 ELSE 695 dqsclrmelt = 0. 696 ENDIF 694 697 695 698 !--In cloudy air … … 704 707 * capa_snowflake / RLMLT * coef_ventil & 705 708 * MAX(0., temp_wetbulb - RTT) * dtime 709 dqscldmelt = MAX( dqscldmelt , -snowcld(i) / hum_to_flux(i)) 710 ELSE 711 dqscldmelt = 0. 706 712 ENDIF 707 713 … … 765 771 tau_freez = 1. / ( gamma_freez & 766 772 * EXP( - alpha_freez * ( temp(i) - temp_nowater ) / ( RTT - temp_nowater ) ) ) 767 !--Exact solution of dqrain/dt = -qrain/tau_freez 768 dqrtotfreez = raincld(i) / hum_to_flux(i) * ( EXP( - dtime / tau_freez ) - 1. ) 769 770 !--Barrier 771 !--It is a MAX because everything is negative 772 dqrtotfreez = MAX(dqrtotfreez, dqrfreez_max) 773 774 !--The partition between clear and cloudy air 775 !--is proportionnal to the rain fluxes in clear / cloudy air 776 dqrclrfreez = dqrtotfreez * rainclr(i) / ( rainclr(i) + raincld(i) ) 777 dqrcldfreez = dqrtotfreez - dqrclrfreez 773 774 !--In clear air 775 IF ( rainclr(i) .GT. 0. ) THEN 776 !--Exact solution of dqrain/dt = -qrain/tau_freez 777 dqrclrfreez = rainclr(i) / hum_to_flux(i) * ( EXP( - dtime / tau_freez ) - 1. ) 778 dqrclrfreez = MAX(dqrclrfreez, -rainclr(i) / hum_to_flux(i)) 779 ELSE 780 dqrclrfreez = 0. 781 ENDIF 782 783 !--In cloudy air 784 IF ( raincld(i) .GT. 0. ) THEN 785 !--Exact solution of dqrain/dt = -qrain/tau_freez 786 dqrcldfreez = raincld(i) / hum_to_flux(i) * ( EXP( - dtime / tau_freez ) - 1. ) 787 dqrcldfreez = MAX(dqrcldfreez, -raincld(i) / hum_to_flux(i)) 788 ELSE 789 dqrcldfreez = 0. 790 ENDIF 791 792 !--Barriers 793 !--It is activated if the total is LOWER than the max 794 !--because everything is negative 795 dqrtotfreez = dqrclrfreez + dqrcldfreez 796 IF ( dqrtotfreez .LT. dqrfreez_max ) THEN 797 !--We redistribute the max freezed rain keeping 798 !--the clear/cloud partition of the freezing rain 799 dqrclrfreez = dqrfreez_max * dqrclrfreez / dqrtotfreez 800 dqrcldfreez = dqrfreez_max * dqrcldfreez / dqrtotfreez 801 dqrtotfreez = dqrfreez_max 802 ENDIF 803 778 804 779 805 !--Add tendencies
Note: See TracChangeset
for help on using the changeset viewer.