! Subroutine that calculates the effect of precipitation in scavenging ! WITHIN the cloud, for large scale as well as convective precipitation SUBROUTINE incloud_scav(lminmax,qmin,qmax,masse,henry,kk,prfl, & psfl,pmflxr,pmflxs,zrho,zdz,t_seri,pdtphys, & his_dhlsc,his_dhcon1,tr_seri) USE dimphy USE infotrac USE indice_sol_mod USE dimensions_mod, ONLY: iim, jjm, llm, ndm USE paramet_mod_h, ONLY: iip1, iip2, iip3, jjp1, llmp1, llmp2, llmm1, kftd, ip1jm, ip1jmp1, & ip1jmi1, ijp1llm, ijmllm, mvar, jcfil, jcfllm USE yomcst_mod_h, ONLY: RPI, RCLUM, RHPLA, RKBOL, RNAVO & , RDAY, REA, REPSM, RSIYEA, RSIDAY, ROMEGA & , R_ecc, R_peri, R_incl & , RA, RG, R1SA & , RSIGMA & , R, RMD, RMV, RD, RV, RCPD & , RMO3, RMCO2, RMC, RMCH4, RMN2O, RMCFC11, RMCFC12 & , RCPV, RCVD, RCVV, RKAPPA, RETV, eps_w & , RCW, RCS & , RLVTT, RLSTT, RLMLT, RTT, RATM & , RESTT, RALPW, RBETW, RGAMW, RALPS, RBETS, RGAMS & , RALPD, RBETD, RGAMD IMPLICIT NONE INCLUDE "chem.h" !============================= INPUT =================================== REAL :: qmin, qmax REAL :: masse(nbtr) REAL :: henry(nbtr) !--cste de Henry mol/l/atm REAL :: kk(nbtr) !--coefficient de var avec T (K) REAL :: prfl(klon,klev+1), psfl(klon,klev+1) !--large-scale ! REAL prfl(klon,klev), psfl(klon,klev) !--large-scale REAL :: pmflxr(klon,klev+1), pmflxs(klon,klev+1) !--convection ! REAL pmflxr(klon,klev), pmflxs(klon,klev) !--convection REAL :: zrho(klon,klev), zdz(klon,klev) REAL :: t_seri(klon,klev) LOGICAL :: lminmax REAL :: pdtphys ! REAL prfl(klon,klev+1), psfl(klon,klev+1) !--large-scale ! Titane ! REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1) !--convection ! Titane !============================= OUTPUT ================================== REAL :: tr_seri(klon,klev,nbtr) ! traceur REAL :: aux_var1(klon,klev) ! traceur REAL :: aux_var2(klon) ! traceur REAL :: aux_var3(klon) ! traceur REAL :: his_dhlsc(klon,nbtr) ! in-cloud scavenging lsc REAL :: his_dhcon1(klon,nbtr) ! in-cloud scavenging con !========================= LOCAL VARIABLES ============================= INTEGER :: it, i, j EXTERNAL minmaxqfi, inscav_spl DO it=1, nbtr ! DO i=1,klon aux_var2(i)=his_dhlsc(i,it) aux_var3(i)=his_dhcon1(i,it) ENDDO DO j=1,klev DO i=1,klon aux_var1(i,j)=tr_seri(i,j,it) ENDDO ENDDO ! IF (lminmax) THEN CALL minmaxqfi(aux_var1,qmin,qmax,'avt inscav') !nhl CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav') ENDIF ! !nhl CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3, !nhl . prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it), !nhl . his_dhlsc(1,it)) CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3, & prfl,psfl,zrho,zdz,t_seri,aux_var1,aux_var2) ! IF (lminmax) THEN CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide lsc') !nhl CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc') ENDIF ! ! !-scheme for convective in-cloud scavenging ! !nhl CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3, !nhl . pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it), !nhl . his_dhcon1(1,it)) CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3, & pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3) ! IF (lminmax) THEN CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con') !nhl CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con') ENDIF ! DO j=1,klev DO i=1,klon tr_seri(i,j,it)=aux_var1(i,j) ENDDO ENDDO DO i=1,klon his_dhlsc(i,it)=aux_var2(i) his_dhcon1(i,it)=aux_var3(i) ENDDO ! ENDDO !--boucle sur it END SUBROUTINE incloud_scav