source: LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/blcloud_scav.F

Last change on this file was 2175, checked in by jescribano, 10 years ago

SPLA code included for first time

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