source: LMDZ6/trunk/libf/phylmd/Dust/gastoparticle.f90 @ 5284

Last change on this file since 5284 was 5274, checked in by abarral, 3 days ago

Replace yomcst.h by existing module

File size: 3.4 KB
Line 
1SUBROUTINE gastoparticle(pdtphys,zdz,zrho,xlat,pplay,t_seri, &
2        id_prec,id_fine, &
3        tr_seri,his_g2pgas ,his_g2paer )
4  !nhl     .                         fluxso4chem, flux_sparam_sulf,
5
6  USE dimphy
7  USE infotrac
8   ! USE indice_sol_mod
9
10  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
11USE yomcst_mod_h, ONLY: RPI, RCLUM, RHPLA, RKBOL, RNAVO                   &
12          , RDAY, REA, REPSM, RSIYEA, RSIDAY, ROMEGA                  &
13          , R_ecc, R_peri, R_incl                                      &
14          , RA, RG, R1SA                                         &
15          , RSIGMA                                                     &
16          , R, RMD, RMV, RD, RV, RCPD                    &
17          , RMO3, RMCO2, RMC, RMCH4, RMN2O, RMCFC11, RMCFC12        &
18          , RCPV, RCVD, RCVV, RKAPPA, RETV, eps_w                    &
19          , RCW, RCS                                                 &
20          , RLVTT, RLSTT, RLMLT, RTT, RATM                           &
21          , RESTT, RALPW, RBETW, RGAMW, RALPS, RBETS, RGAMS            &
22          , RALPD, RBETD, RGAMD
23IMPLICIT NONE
24  !
25
26  INCLUDE "chem.h"
27  INCLUDE "chem_spla.h"
28
29  INCLUDE "YOECUMF.h"
30  !
31  REAL :: pdtphys
32  REAL :: zrho(klon,klev)
33  REAL :: zdz(klon,klev)
34  REAL :: tr_seri(klon,klev,nbtr)   ! traceurs
35  REAL :: tend                 ! tendance par espece
36  REAL :: xlat(klon)       ! latitudes pour chaque point
37  REAL :: pi
38  !   JE: 20140120
39  REAL :: his_g2pgas(klon)
40  REAL :: his_g2paer(klon)
41  REAL :: tendincm3(klon,klev)
42  REAL :: tempvar(klon,klev)
43  REAL :: pplay(klon,klev)
44  REAL :: t_seri(klon,klev)
45  REAL :: tend2d(klon,klev)
46  INTEGER :: id_prec,id_fine
47  !
48  !------------------------- Scaling Parameter --------------------------
49  !
50  !  REAL scale_param_so4(klon)  !Scaling parameter for sulfate
51
52  INTEGER :: i, k
53  REAL :: tau_chem     !---chemical lifetime in s
54  !
55  !------------------------- Variables to save --------------------------
56  !
57  !nhl      REAL fluxso4chem(klon,klev)
58  !nhl      REAL flux_sparam_sulf(klon,klev)
59
60  !======================================================================
61  pi=atan(1.)*4.
62  !
63  IF (id_prec>0 .AND. id_fine>0) THEN
64  DO k = 1, klev
65  DO i = 1, klon
66  !
67  !    tau_chem=scale_param_so4(i)*86400.*(8.-5.*cos(xlat(i)*pi/180.))    !tchemfctn2
68  !nhl        tau_chem=86400.*(8.-5.*cos(xlat(i)*pi/180.))    !tchemfctn2
69    tau_chem=86400.*(5.-4.*cos(xlat(i)*pi/180.))    !
70    tend=tr_seri(i,k,id_prec)*(1.-exp(-pdtphys/tau_chem)) ! Sulfate production
71  !nhl        tend=(1.-exp(-pdtphys/tau_chem))
72  !nhl        tend=scale_param_so4(i) !as this it works
73  !
74    tr_seri(i,k,id_prec) =tr_seri(i,k,id_prec) - tend
75    tr_seri(i,k,id_fine) =tr_seri(i,k,id_fine) + &
76          tend/RNAVO*masse_ammsulfate  !--gAER/KgAir
77    tend2d(i,k)=tend
78  !
79  !nhl        fluxso4chem(i,k) = tend/RNAVO*masse_ammsulfate
80  !nhl        flux_sparam_sulf(i,k) = tend/RNAVO*masse_ammsulfate
81  ENDDO
82  ENDDO
83
84
85
86    tempvar=tend2d
87     CALL kg_to_cm3(pplay,t_seri,tempvar)
88    tendincm3=tempvar
89
90  DO k = 1, klev
91  DO i = 1, klon
92
93     ! his_g2pgas(i) = his_g2pgas(i) + tendincm3(i,k)*1e6*zdz(i,k)/pdtphys
94    his_g2paer(i) = his_g2paer(i) + &
95          tendincm3(i,k)/RNAVO*masse_ammsulfate*1.e3* &
96          1.e6*zdz(i,k)/pdtphys    ! mg/m2/s
97    his_g2pgas(i) = his_g2paer(i)*masse_s/masse_ammsulfate ! mg-S/m2/s
98
99  ENDDO
100  ENDDO
101  ENDIF
102
103  !
104  RETURN
105END SUBROUTINE gastoparticle
Note: See TracBrowser for help on using the repository browser.