source: LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/incloud_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.5 KB
Line 
1c Subroutine that calculates the effect of precipitation in scavenging
2c WITHIN the cloud, for large scale as well as convective precipitation
3      SUBROUTINE incloud_scav(lminmax,qmin,qmax,masse,henry,kk,prfl,
4     .                      psfl,pmflxr,pmflxs,zrho,zdz,t_seri,pdtphys,
5     .                                   his_dhlsc,his_dhcon1,tr_seri)
6
7      USE dimphy
8      USE infotrac
9      USE indice_sol_mod
10
11      IMPLICIT NONE
12
13#include "dimensions.h"
14#include "chem.h"
15#include "../phylmd/YOMCST.h"
16c #include "../phylmd/dimphy.h"
17c #include "../phylmd/indicesol.h"
18#include "paramet.h"
19
20c============================= INPUT ===================================
21      REAL qmin, qmax
22      REAL masse(nbtr)
23      REAL henry(nbtr)         !--cste de Henry  mol/l/atm
24      REAL kk(nbtr)            !--coefficient de var avec T (K)
25      REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale
26!      REAL prfl(klon,klev),   psfl(klon,klev)     !--large-scale
27      REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection
28!      REAL pmflxr(klon,klev), pmflxs(klon,klev)   !--convection
29      REAL zrho(klon,klev), zdz(klon,klev)
30      REAL t_seri(klon,klev)
31      LOGICAL lminmax
32      REAL pdtphys
33!      REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale  ! Titane
34!      REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection   ! Titane
35c============================= OUTPUT ==================================
36      REAL tr_seri(klon,klev,nbtr) ! traceur
37      REAL aux_var1(klon,klev) ! traceur
38      REAL aux_var2(klon) ! traceur
39      REAL aux_var3(klon) ! traceur
40      REAL his_dhlsc(klon,nbtr)        ! in-cloud scavenging lsc
41      REAL his_dhcon1(klon,nbtr)       ! in-cloud scavenging con
42c========================= LOCAL VARIABLES =============================     
43      INTEGER it, i, j
44     
45      EXTERNAL minmaxqfi, inscav_spl
46     
47      DO it=1, nbtr
48c
49      DO i=1,klon
50        aux_var2(i)=his_dhlsc(i,it)
51        aux_var3(i)=his_dhcon1(i,it)
52      ENDDO
53      DO j=1,klev
54      DO i=1,klon
55        aux_var1(i,j)=tr_seri(i,j,it)
56      ENDDO
57      ENDDO
58c     
59      IF (lminmax) THEN
60        CALL minmaxqfi(aux_var1,qmin,qmax,'avt inscav')
61cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
62      ENDIF
63c
64cnhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
65cnhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
66cnhl     .             his_dhlsc(1,it))
67      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
68     .             prfl,psfl,zrho,zdz,t_seri,aux_var1,aux_var2)
69c
70      IF (lminmax) THEN
71        CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide lsc')
72cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
73      ENDIF
74c
75c
76c-scheme for convective in-cloud scavenging
77c
78cnhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
79cnhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
80cnhl     .             his_dhcon1(1,it))
81      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
82     .             pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3)
83c
84      IF (lminmax) THEN
85        CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con')
86cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
87      ENDIF
88c
89      DO j=1,klev
90      DO i=1,klon
91        tr_seri(i,j,it)=aux_var1(i,j)
92      ENDDO
93      ENDDO
94      DO i=1,klon
95        his_dhlsc(i,it)=aux_var2(i)
96        his_dhcon1(i,it)=aux_var3(i)
97      ENDDO
98
99c
100      ENDDO !--boucle sur it
101
102      END
Note: See TracBrowser for help on using the repository browser.