source: LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/incloud_scav_lsc.f90 @ 5182

Last change on this file since 5182 was 5182, checked in by abarral, 10 days ago

(WIP) Replace REPROBUS CPP KEY by logical
properly name modules

File size: 3.7 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
7  USE dimphy
8  USE lmdz_infotrac
9  USE indice_sol_mod
10  USE lmdz_yomcst
11
12USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm
13  USE lmdz_paramet
14USE lmdz_chem, ONLY: idms, iso2, iso4, ih2s, idmso, imsa, ih2o2, &
15          n_avogadro, masse_s, masse_so4, rho_water, rho_ice
16  IMPLICIT NONE
17
18
19
20
21
22  !============================= INPUT ===================================
23  REAL :: qmin, qmax
24  REAL :: masse(nbtr)
25  REAL :: henry(nbtr)         !--cste de Henry  mol/l/atm
26  REAL :: kk(nbtr)            !--coefficient de var avec T (K)
27  REAL :: prfl(klon, klev + 1), psfl(klon, klev + 1)     !--large-scale
28  ! REAL prfl(klon,klev),   psfl(klon,klev)     !--large-scale
29  REAL :: pmflxr(klon, klev + 1), pmflxs(klon, klev + 1)   !--convection
30  ! REAL pmflxr(klon,klev), pmflxs(klon,klev)   !--convection
31  REAL :: zrho(klon, klev), zdz(klon, klev)
32  REAL :: t_seri(klon, klev)
33  LOGICAL :: lminmax
34  REAL :: pdtphys
35  ! REAL prfl(klon,klev+1),   psfl(klon,klev+1)     !--large-scale  ! Titane
36  ! REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)   !--convection   ! Titane
37  !============================= OUTPUT ==================================
38  REAL :: tr_seri(klon, klev, nbtr) ! traceur
39  REAL :: aux_var1(klon, klev) ! traceur
40  REAL :: aux_var2(klon) ! traceur
41  REAL :: aux_var3(klon) ! traceur
42  REAL :: his_dhlsc(klon, nbtr)        ! in-cloud scavenging lsc
43  REAL :: his_dhcon1(klon, nbtr)       ! in-cloud scavenging con
44  !========================= LOCAL VARIABLES =============================
45  INTEGER :: it, i, j
46
47  EXTERNAL minmaxqfi, inscav_spl
48  DO it = 1, nbtr
49
50    DO i = 1, klon
51      aux_var2(i) = his_dhlsc(i, it)
52      aux_var3(i) = his_dhcon1(i, it)
53    ENDDO
54    DO j = 1, klev
55      DO i = 1, klon
56        aux_var1(i, j) = tr_seri(i, j, it)
57      ENDDO
58    ENDDO
59
60    IF (lminmax) THEN
61      CALL minmaxqfi(aux_var1, qmin, qmax, 'avt inscav')
62      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'avt inscav')
63    ENDIF
64
65    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),0.5e-3,
66    !nhl     .             prfl,psfl,zrho,zdz,t_seri,tr_seri(1,1,it),
67    !nhl     .             his_dhlsc(1,it))
68    CALL inscav_spl(pdtphys, it, masse(it), henry(it), kk(it), 0.5e-3, &
69            prfl, psfl, zrho, zdz, t_seri, aux_var1, aux_var2)
70
71    IF (lminmax) THEN
72      CALL minmaxqfi(aux_var1, qmin, qmax, 'depot humide lsc')
73      !nhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide lsc')
74    ENDIF
75
76
77    !-scheme for convective in-cloud scavenging
78
79    !nhl      CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
80    !nhl     .             pmflxr,pmflxs,zrho,zdz,t_seri,tr_seri(1,1,it),
81    !nhl     .             his_dhcon1(1,it))
82
83    !  PRINT *,'JE inscav0'
84    !  IF (iflag_con.LT.3) THEN
85
86    !  PRINT *,'JE inscav1'
87    !  PRINT *,'iflag_con',iflag_con
88    !  CALL inscav_spl(pdtphys,it,masse(it),henry(it),kk(it),1.e-3,
89    ! .             pmflxr,pmflxs,zrho,zdz,t_seri,aux_var1,aux_var3)
90
91    !c
92    !  IF (lminmax) THEN
93    !    CALL minmaxqfi(aux_var1,qmin,qmax,'depot humide con')
94    !cnhl      CALL minmaxqfi(tr_seri(1,1,it),qmin,qmax,'depot humide con')
95
96    !  ENDIF
97
98    !  ENDIF ! iflag_con
99
100
101    !  PRINT *,'JE inscav2'
102    DO j = 1, klev
103      DO i = 1, klon
104        tr_seri(i, j, it) = aux_var1(i, j)
105      ENDDO
106    ENDDO
107    DO i = 1, klon
108      his_dhlsc(i, it) = aux_var2(i)
109      his_dhcon1(i, it) = aux_var3(i)
110    ENDDO
111
112
113  ENDDO !--boucle sur it
114
115  ! PRINT *,'JE inscav3'
116END SUBROUTINE incloud_scav_lsc
Note: See TracBrowser for help on using the repository browser.