source: LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_lw_rrtm.F90 @ 2641

Last change on this file since 2641 was 2542, checked in by Laurent Fairhead, 8 years ago

Merged trunk changes r2487:2541 into testing branch

  • Property svn:executable set to *
File size: 2.9 KB
Line 
1!
2! aeropt_lw_rrtm.F90 2014-05-13 C. Kleinschmitt
3!                    2016-05-03 O. Boucher
4!
5! This routine feeds aerosol LW properties to RRTM
6! we only consider absorption (not scattering)
7
8SUBROUTINE AEROPT_LW_RRTM(aerosol_couple,paprs,tr_seri)
9
10  USE dimphy
11  USE aero_mod
12  USE infotrac_phy
13  USE phys_state_var_mod, ONLY : tau_aero_lw_rrtm
14  USE YOERAD, ONLY : NLW
15
16  IMPLICIT NONE
17
18  INCLUDE "YOMCST.h"
19  INCLUDE "clesphys.h"
20  !
21  ! Input arguments:
22  !
23  LOGICAL, INTENT(IN)                         :: aerosol_couple
24  REAL, DIMENSION(klon,klev+1), INTENT(in)    :: paprs
25  REAL, DIMENSION(klon,klev,nbtr), INTENT(in) :: tr_seri
26  !
27  REAL, DIMENSION(klon,klev) :: zdp, mass_temp
28  !
29  !
30  INTEGER inu, i, k
31  INTEGER :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM
32  INTEGER :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M
33
34  !
35  !--absorption coefficient for CIDUST
36  REAL:: alpha_abs_CIDUST_16bands(nbands_lw_rrtm)   !--unit m2/g
37  DATA alpha_abs_CIDUST_16bands /              &
38       0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
39       0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  /
40  !
41  IF (NLW.NE.nbands_lw_rrtm) THEN
42     print *,'Erreur NLW doit etre egal a 16 pour cette routine'
43     stop
44  ENDIF
45  !
46  IF (aerosol_couple) THEN
47  !
48      do i=1,nbtr
49      select case(trim(solsym(i)))
50         case ("ASBCM")
51            id_ASBCM = i
52         case ("ASPOMM")
53            id_ASPOMM = i
54         case ("ASSO4M")
55            id_ASSO4M = i
56         case ("ASMSAM")
57            id_ASMSAM = i
58         case ("CSSO4M")
59            id_CSSO4M = i
60         case ("CSMSAM")
61            id_CSMSAM = i
62         case ("SSSSM")
63            id_SSSSM = i
64         case ("CSSSM")
65            id_CSSSM = i
66         case ("ASSSM")
67            id_ASSSM = i
68         case ("CIDUSTM")
69            id_CIDUSTM = i
70         case ("AIBCM")
71            id_AIBCM = i
72         case ("AIPOMM")
73            id_AIPOMM = i
74         case ("ASNO3M")
75            id_ASNO3M = i
76         case ("CSNO3M")
77            id_CSNO3M = i
78         case ("CINO3M")
79            id_CINO3M = i
80         end select
81    enddo
82    !
83    DO k=1, klev
84       zdp(:,k) = (paprs(:,k)-paprs(:,k+1))/RG !--kg/m2
85    ENDDO
86    !
87    !--for now only consider dust
88    mass_temp(:,:)=tr_seri(:,:,id_CIDUSTM)  !--kg/kg
89    !
90    DO inu=1,NLW
91      !
92      !--total aerosol
93      tau_aero_lw_rrtm(:,:,2,inu) = mass_temp(:,:)*zdp(:,:)*1000.*alpha_abs_CIDUST_16bands(inu)
94      !--no aerosol at all
95      tau_aero_lw_rrtm(:,:,1,inu) = 0.0
96      !
97    ENDDO
98    !
99    !--avoid very small values
100    tau_aero_lw_rrtm = MAX(tau_aero_lw_rrtm,1.e-15)
101    !
102  ELSE !--not aerosol_couple
103    !
104    !--no LW effects if not coupled to INCA
105    tau_aero_lw_rrtm = 1.e-15
106  ENDIF
107  !
108END SUBROUTINE AEROPT_LW_RRTM
Note: See TracBrowser for help on using the repository browser.