source: LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/incloud_scav_lsc.F @ 2404

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

SPLA code included for first time

File size: 3.7 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_lsc(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      DO it=1, nbtr
47c
48      DO i=1,klon
49        aux_var2(i)=his_dhlsc(i,it)
50        aux_var3(i)=his_dhcon1(i,it)
51      ENDDO
52      DO j=1,klev
53      DO i=1,klon
54        aux_var1(i,j)=tr_seri(i,j,it)
55      ENDDO
56      ENDDO
57c     
58      IF (lminmax) THEN
59        CALL minmaxqfi(aux_var1,qmin,qmax,'avt inscav')
60cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
61      ENDIF
62c
63cnhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
64cnhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
65cnhl     .             his_dhlsc(1,it))
66      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
67     .             prfl,psfl,zrho,zdz,t_seri,aux_var1,aux_var2)
68c
69      IF (lminmax) THEN
70        CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide lsc')
71cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
72      ENDIF
73c
74c
75c-scheme for convective in-cloud scavenging
76c
77cnhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
78cnhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
79cnhl     .             his_dhcon1(1,it))
80
81c      print *,'JE inscav0'
82c      IF (iflag_con.LT.3) THEN
83c
84c      print *,'JE inscav1'
85c      print *,'iflag_con',iflag_con
86c      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
87c     .             pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3)
88c
89cc
90c      IF (lminmax) THEN
91c        CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con')
92ccnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
93c
94c      ENDIF
95c
96c      ENDIF ! iflag_con
97
98c
99c      print *,'JE inscav2'
100      DO j=1,klev
101      DO i=1,klon
102        tr_seri(i,j,it)=aux_var1(i,j)
103      ENDDO
104      ENDDO
105      DO i=1,klon
106        his_dhlsc(i,it)=aux_var2(i)
107        his_dhcon1(i,it)=aux_var3(i)
108      ENDDO
109
110c
111      ENDDO !--boucle sur it
112
113c      print *,'JE inscav3'
114      END
Note: See TracBrowser for help on using the repository browser.