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