source: LMDZ6/trunk/libf/phylmd/Dust/blcloud_scav_lsc.f90 @ 5301

Last change on this file since 5301 was 5292, checked in by abarral, 4 days ago

Move academic.h chem.h chem_spla.h to module

File size: 3.5 KB
RevLine 
[5246]1! Subroutine that calculates the effect of precipitation in scavenging
2! BELOW the cloud, for large scale as well as convective precipitation
3SUBROUTINE blcloud_scav_lsc(lminmax,qmin,qmax,pdtphys,prfl,psfl, &
4        pmflxr,pmflxs,zdz,alpha_r,alpha_s,masse, &
5        his_dhbclsc,his_dhbccon,tr_seri)
[2630]6
[5292]7USE chem_mod_h
8    USE dimphy
[5246]9  USE indice_sol_mod
10  USE infotrac
[5271]11  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
[5285]12USE paramet_mod_h
13USE yomcst_mod_h
[5271]14IMPLICIT NONE
[2630]15
[5271]16
[2630]17
[5272]18
[5274]19
[5246]20  !============================= INPUT ===================================
21  REAL :: qmin,qmax
22  REAL :: pdtphys  ! pas d'integration pour la physique (seconde)
23   ! REAL prfl(klon,klev),   psfl(klon,klev)     !--large-scale
24   ! REAL pmflxr(klon,klev), pmflxs(klon,klev)   !--convection
25  REAL :: alpha_r(nbtr)!--coefficient d'impaction pour la pluie
26  REAL :: alpha_s(nbtr)!--coefficient d'impaction pour la neige
27  REAL :: masse(nbtr)
28  LOGICAL :: lminmax
29  REAL :: zdz(klon,klev)
30  REAL :: prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale  ! Titane
31  REAL :: pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection   ! Titane
32  !============================= OUTPUT ==================================
33  REAL :: tr_seri(klon,klev,nbtr) ! traceur
34  REAL :: aux_var1(klon,klev) ! traceur
35  REAL :: aux_var2(klon,klev) ! traceur
36  REAL :: his_dhbclsc(klon,nbtr), his_dhbccon(klon,nbtr)
37  !========================= LOCAL VARIABLES =============================
38  INTEGER :: it, k, i, j
39  REAL :: d_tr(klon,klev,nbtr)
[2630]40
[5246]41  EXTERNAL minmaxqfi, bcscav_spl
[2630]42
[5246]43  DO it=1, nbtr
44  !
45  DO j=1,klev
46  DO i=1,klon
47    aux_var1(i,j)=tr_seri(i,j,it)
48    aux_var2(i,j)=d_tr(i,j,it)
49  ENDDO
50  ENDDO
51  !
52  !nhl      CALL bcscav_spl(pdtphys,prfl,psfl,alpha_r(it),alpha_s(it),
53  !nhl     .                tr_seri(1,1,it),d_tr(1,1,it))
54  CALL bcscav_spl(pdtphys,prfl,psfl,alpha_r(it),alpha_s(it), &
55        aux_var1,aux_var2)
56  !
57  DO j=1,klev
58  DO i=1,klon
59    tr_seri(i,j,it)=aux_var1(i,j)
60    d_tr(i,j,it)=aux_var2(i,j)
61  ENDDO
62  ENDDO
63  DO k = 1, klev
64  DO i = 1, klon
65     tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr(i,k,it)
66     his_dhbclsc(i,it)=his_dhbclsc(i,it)-d_tr(i,k,it)/RNAVO* &
67           masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys  !--mgS/m2/s
[2630]68
[5246]69  ENDDO
70  ENDDO
71  !
72  DO i=1,klon
73  DO j=1,klev
74    aux_var1(i,j)=tr_seri(i,j,it)
75    aux_var2(i,j)=d_tr(i,j,it)
76  ENDDO
77  ENDDO
78  !
79  IF (lminmax) THEN
80    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide bc lsc')
81  !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide bc lsc')
82  ENDIF
83  !
84  !-scheme for convective scavenging
85  !
86  !nhl      CALL bcscav_spl(pdtphys,pmflxr,pmflxs,alpha_r(it),alpha_s(it),
87  !nhl     .                tr_seri(1,1,it),d_tr(1,1,it))
[2630]88
89
[5246]90  !JE      CALL bcscav_spl(pdtphys,pmflxr,pmflxs,alpha_r(it),alpha_s(it),
91  !JE     .                aux_var1,aux_var2)
92
93
94  !
95  DO i=1,klon
96  DO j=1,klev
97    tr_seri(i,j,it)=aux_var1(i,j)
98    d_tr(i,j,it)=aux_var2(i,j)
99  ENDDO
100  ENDDO
101  !
102  DO k = 1, klev
103  DO i = 1, klon
104     tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr(i,k,it)
105     his_dhbccon(i,it)=his_dhbccon(i,it)-d_tr(i,k,it)/RNAVO* &
106           masse(it)*1.e3*1.e6*zdz(i,k)/pdtphys    !--mgS/m2/s
107  ENDDO
108  ENDDO
109  !
110  IF (lminmax) THEN
111    DO j=1,klev
112    DO i=1,klon
113      aux_var1(i,j)=tr_seri(i,j,it)
114    ENDDO
115    ENDDO
116    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide bc con')
117  !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide bc con')
118    DO j=1,klev
119    DO i=1,klon
120      tr_seri(i,j,it)=aux_var1(i,j)
121    ENDDO
122    ENDDO
123  ENDIF
124  !
125  !
126  ENDDO !--boucle sur it
127  !
128END SUBROUTINE blcloud_scav_lsc
Note: See TracBrowser for help on using the repository browser.