source: LMDZ6/trunk/libf/phylmd/Dust/incloud_scav_lsc.f90 @ 5452

Last change on this file since 5452 was 5337, checked in by Laurent Fairhead, 6 weeks ago

Getting rid of dependance to dynamics

File size: 3.4 KB
Line 
1! Subroutine that calculates the effect of precipitation in scavenging
2! WITHIN the cloud, for large scale as well as convective precipitation
3SUBROUTINE 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
7USE chem_mod_h
8    USE dimphy
9  USE infotrac_phy, ONLY: nbtr
10  USE indice_sol_mod
11
12!!USE paramet_mod_h
13USE yomcst_mod_h
14IMPLICIT NONE
15
16
17
18
19
20  !============================= 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
35  !============================= 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
42  !========================= LOCAL VARIABLES =============================
43  INTEGER :: it, i, j
44
45  EXTERNAL minmaxqfi, inscav_spl
46  DO it=1, nbtr
47  !
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
57  !
58  IF (lminmax) THEN
59    CALL minmaxqfi(aux_var1,qmin,qmax,'avt inscav')
60  !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
61  ENDIF
62  !
63  !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
64  !nhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
65  !nhl     .             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)
68  !
69  IF (lminmax) THEN
70    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide lsc')
71  !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
72  ENDIF
73  !
74  !
75  !-scheme for convective in-cloud scavenging
76  !
77  !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
78  !nhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
79  !nhl     .             his_dhcon1(1,it))
80
81  !  print *,'JE inscav0'
82  !  IF (iflag_con.LT.3) THEN
83  !
84  !  print *,'JE inscav1'
85  !  print *,'iflag_con',iflag_con
86  !  CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
87  ! .             pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3)
88  !
89  !c
90  !  IF (lminmax) THEN
91  !    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con')
92  !cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
93  !
94  !  ENDIF
95  !
96  !  ENDIF ! iflag_con
97
98  !
99  !  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
110  !
111  ENDDO !--boucle sur it
112
113   ! print *,'JE inscav3'
114END SUBROUTINE incloud_scav_lsc
Note: See TracBrowser for help on using the repository browser.