source: LMDZ6/trunk/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90 @ 3630

Last change on this file since 3630 was 3630, checked in by Laurent Fairhead, 4 years ago

Parameter new_aod is not needed anymore as it is assumed to be true
all the time. This means that we cannot replay AR4 simulations with new
LMDZ sources (we probably couldn't anyway)
LF, OB

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:keywords set to Author Date Id Revi
File size: 16.2 KB
RevLine 
[2004]1! $Id: readaerosol_optic_rrtm.F90 3630 2020-02-10 10:04:40Z fairhead $
2!
[3480]3SUBROUTINE readaerosol_optic_rrtm(debut, aerosol_couple, ok_alw, ok_volcan, &
[3630]4     flag_aerosol, flag_bc_internal_mixture, itap, rjourvrai, &
[2004]5     pdtphys, pplay, paprs, t_seri, rhcl, presnivs, &
[2146]6     tr_seri, mass_solu_aero, mass_solu_aero_pi, &
[2004]7     tau_aero, piz_aero, cg_aero, &
[2854]8     tausum_aero, drytausum_aero, tau3d_aero )
[2004]9
[2146]10  ! This routine will :
11  ! 1) recevie the aerosols(already read and interpolated) corresponding to flag_aerosol
12  ! 2) calculate the optical properties for the aerosols
13  !
14
[2004]15  USE dimphy
16  USE aero_mod
[2146]17  USE phys_local_var_mod, only: sconcso4,sconcno3,sconcoa,sconcbc,sconcss,sconcdust, &
18       concso4,concno3,concoa,concbc,concss,concdust,loadso4,loadoa,loadbc,loadss,loaddust, &
[2953]19       loadno3,load_tmp1,load_tmp2,load_tmp3,load_tmp4,load_tmp5,load_tmp6,load_tmp7, &
20       load_tmp8,load_tmp9,load_tmp10
[2146]21
[2504]22  USE infotrac_phy
[2693]23  USE YOMCST
[2146]24
[2004]25  IMPLICIT NONE
[2693]26
[2004]27  include "clesphys.h"
28
[2146]29  ! Input arguments
30  !****************************************************************************************
[2004]31  LOGICAL, INTENT(IN)                      :: debut
[2146]32  LOGICAL, INTENT(IN)                      :: aerosol_couple
[2738]33  LOGICAL, INTENT(IN)                      :: ok_alw
[3480]34  LOGICAL, INTENT(IN)                      :: ok_volcan
[2004]35  INTEGER, INTENT(IN)                      :: flag_aerosol
[2644]36  LOGICAL, INTENT(IN)                      :: flag_bc_internal_mixture
[2004]37  INTEGER, INTENT(IN)                      :: itap
38  REAL, INTENT(IN)                         :: rjourvrai
39  REAL, INTENT(IN)                         :: pdtphys
40  REAL, DIMENSION(klon,klev), INTENT(IN)   :: pplay
41  REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs
42  REAL, DIMENSION(klon,klev), INTENT(IN)   :: t_seri
43  REAL, DIMENSION(klon,klev), INTENT(IN)   :: rhcl   ! humidite relative ciel clair
44  REAL, DIMENSION(klev), INTENT(IN)        :: presnivs
[2146]45  REAL, DIMENSION(klon,klev,nbtr), INTENT(IN) :: tr_seri ! concentration tracer
[2004]46
[2146]47  ! Output arguments
48  !****************************************************************************************
[2004]49  REAL, DIMENSION(klon,klev), INTENT(OUT)     :: mass_solu_aero    ! Total mass for all soluble aerosols
50  REAL, DIMENSION(klon,klev), INTENT(OUT)     :: mass_solu_aero_pi !     -"-     preindustrial values
51  REAL, DIMENSION(klon,klev,2,NSW), INTENT(OUT) :: tau_aero    ! Aerosol optical thickness
52  REAL, DIMENSION(klon,klev,2,NSW), INTENT(OUT) :: piz_aero    ! Single scattering albedo aerosol
53  REAL, DIMENSION(klon,klev,2,NSW), INTENT(OUT) :: cg_aero     ! asymmetry parameter aerosol
54  REAL, DIMENSION(klon,nwave,naero_tot), INTENT(OUT)       :: tausum_aero
[2854]55  REAL, DIMENSION(klon,naero_tot), INTENT(OUT)             :: drytausum_aero
[2004]56  REAL, DIMENSION(klon,klev,nwave,naero_tot), INTENT(OUT)  :: tau3d_aero
57
[2146]58  ! Local variables
59  !****************************************************************************************
60  REAL, DIMENSION(klon)        :: aerindex      ! POLDER aerosol index
61  REAL, DIMENSION(klon,klev)   :: sulfacc       ! SO4 accumulation concentration [ug/m3]
62  REAL, DIMENSION(klon,klev)   :: sulfcoarse    ! SO4 coarse concentration [ug/m3]
63  REAL, DIMENSION(klon,klev)   :: bcsol         ! BC soluble concentration [ug/m3]
64  REAL, DIMENSION(klon,klev)   :: bcins         ! BC insoluble concentration [ug/m3]
65  REAL, DIMENSION(klon,klev)   :: pomsol        ! POM soluble concentration [ug/m3]
66  REAL, DIMENSION(klon,klev)   :: pomins        ! POM insoluble concentration [ug/m3]
67  REAL, DIMENSION(klon,klev)   :: cidust        ! DUST aerosol concentration  [ug/m3]
68  REAL, DIMENSION(klon,klev)   :: sscoarse      ! SS Coarse concentration [ug/m3]
69  REAL, DIMENSION(klon,klev)   :: sssupco       ! SS Super Coarse concentration [ug/m3]
70  REAL, DIMENSION(klon,klev)   :: ssacu         ! SS Acumulation concentration [ug/m3]
71  REAL, DIMENSION(klon,klev)   :: nitracc       ! nitrate accumulation concentration [ug/m3]
72  REAL, DIMENSION(klon,klev)   :: nitrcoarse    ! nitrate coarse concentration [ug/m3]
73  REAL, DIMENSION(klon,klev)   :: nitrinscoarse ! nitrate insoluble coarse concentration [ug/m3]
74  REAL, DIMENSION(klon,klev)   :: sulfacc_pi
75  REAL, DIMENSION(klon,klev)   :: sulfcoarse_pi
[2004]76  REAL, DIMENSION(klon,klev)   :: bcsol_pi
77  REAL, DIMENSION(klon,klev)   :: bcins_pi
78  REAL, DIMENSION(klon,klev)   :: pomsol_pi
79  REAL, DIMENSION(klon,klev)   :: pomins_pi
80  REAL, DIMENSION(klon,klev)   :: cidust_pi
81  REAL, DIMENSION(klon,klev)   :: sscoarse_pi
82  REAL, DIMENSION(klon,klev)   :: sssupco_pi
83  REAL, DIMENSION(klon,klev)   :: ssacu_pi
[2146]84  REAL, DIMENSION(klon,klev)   :: nitracc_pi
85  REAL, DIMENSION(klon,klev)   :: nitrcoarse_pi
86  REAL, DIMENSION(klon,klev)   :: nitrinscoarse_pi
87  REAL, DIMENSION(klon,klev)   :: pdel, zrho
88  REAL, DIMENSION(klon,klev,naero_tot) :: m_allaer
89  REAL, DIMENSION(klon,klev,naero_tot) :: m_allaer_pi !RAF 
[2180]90
[2146]91  integer :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM
92  integer :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M
[2004]93  INTEGER :: k, i
94
[2146]95  !--air density
96  zrho(:,:)=pplay(:,:)/t_seri(:,:)/RD                     !--kg/m3
[2004]97
[2146]98  !****************************************************************************************
99  ! 1) Get aerosol mass
100  !   
101  !****************************************************************************************
102  !
103  !
104  IF (aerosol_couple) THEN   !--we get aerosols from tr_seri array from INCA
105     !
106     !--copy fields from INCA tr_seri
107     !--convert to ug m-3 unit for consistency with offline fields
108     !
[2693]109     DO i=1,nbtr
110        SELECT CASE(trim(solsym(i)))
111           CASE ("ASBCM")
[2146]112              id_ASBCM = i
[2693]113           CASE ("ASPOMM")
[2146]114              id_ASPOMM = i
[2693]115           CASE ("ASSO4M")
[2146]116              id_ASSO4M = i
[2693]117           CASE ("ASMSAM")
[2146]118              id_ASMSAM = i
[2693]119           CASE ("CSSO4M")
[2146]120              id_CSSO4M = i
[2693]121           CASE ("CSMSAM")
[2146]122              id_CSMSAM = i
[2693]123           CASE ("SSSSM")
[2146]124              id_SSSSM = i
[2693]125           CASE ("CSSSM")
[2146]126              id_CSSSM = i
[2693]127           CASE ("ASSSM")
[2146]128              id_ASSSM = i
[2693]129           CASE ("CIDUSTM")
[2146]130              id_CIDUSTM = i
[2693]131           CASE ("AIBCM")
[2146]132              id_AIBCM = i
[2693]133           CASE ("AIPOMM")
[2146]134              id_AIPOMM = i
[2693]135           CASE ("ASNO3M")
[2146]136              id_ASNO3M = i
[2693]137           CASE ("CSNO3M")
[2146]138              id_CSNO3M = i
[2693]139           CASE ("CINO3M")
[2146]140              id_CINO3M = i
[2693]141           END SELECT
142     ENDDO
[2004]143
[2146]144     bcsol(:,:)        =   tr_seri(:,:,id_ASBCM)                         *zrho(:,:)*1.e9  ! ASBCM
145     pomsol(:,:)       =   tr_seri(:,:,id_ASPOMM)                        *zrho(:,:)*1.e9  ! ASPOMM
146     sulfacc(:,:)      =  (tr_seri(:,:,id_ASSO4M)+tr_seri(:,:,id_ASMSAM))*zrho(:,:)*1.e9  ! ASSO4M (=SO4) + ASMSAM (=MSA)
147     sulfcoarse(:,:)   =  (tr_seri(:,:,id_CSSO4M)+tr_seri(:,:,id_CSMSAM))*zrho(:,:)*1.e9  ! CSSO4M (=SO4) + CSMSAM (=MSA)
148     sssupco(:,:)      =   tr_seri(:,:,id_SSSSM)                         *zrho(:,:)*1.e9  ! SSSSM
149     sscoarse(:,:)     =   tr_seri(:,:,id_CSSSM)                         *zrho(:,:)*1.e9  ! CSSSM
150     ssacu(:,:)        =   tr_seri(:,:,id_ASSSM)                         *zrho(:,:)*1.e9  ! ASSSM
151     cidust(:,:)       =   tr_seri(:,:,id_CIDUSTM)                       *zrho(:,:)*1.e9  ! CIDUSTM
152     bcins(:,:)        =   tr_seri(:,:,id_AIBCM)                         *zrho(:,:)*1.e9  ! AIBCM
153     pomins(:,:)       =   tr_seri(:,:,id_AIPOMM)                        *zrho(:,:)*1.e9  ! AIPOMM
154     nitracc(:,:)      =   tr_seri(:,:,id_ASNO3M)                        *zrho(:,:)*1.e9  ! ASNO3M
155     nitrcoarse(:,:)   =   tr_seri(:,:,id_CSNO3M)                        *zrho(:,:)*1.e9  ! CSNO3M
156     nitrinscoarse(:,:)=   tr_seri(:,:,id_CINO3M)                        *zrho(:,:)*1.e9  ! CINO3M
157     !
158     bcsol_pi(:,:)        =   0.0 ! ASBCM pre-ind
159     pomsol_pi(:,:)       =   0.0 ! ASPOMM pre-ind
160     sulfacc_pi(:,:)      =   0.0 ! ASSO4M (=SO4) + ASMSAM (=MSA) pre-ind
161     sulfcoarse_pi(:,:)   =   0.0 ! CSSO4M (=SO4) + CSMSAM (=MSA) pre-ind
162     sssupco_pi(:,:)      =   0.0 ! SSSSM pre-ind
163     sscoarse_pi(:,:)     =   0.0 ! CSSSM pre-ind
164     ssacu_pi(:,:)        =   0.0 ! ASSSM pre-ind
165     cidust_pi(:,:)       =   0.0 ! CIDUSTM pre-ind
166     bcins_pi(:,:)        =   0.0 ! AIBCM pre-ind
167     pomins_pi(:,:)       =   0.0 ! AIPOMM pre-ind
168     nitracc_pi(:,:)      =   0.0 ! ASNO3M pre-ind
169     nitrcoarse_pi(:,:)   =   0.0 ! CSNO3M pre-ind
170     nitrinscoarse_pi(:,:)=   0.0 ! CINO3M
171     !
172  ELSE !--not aerosol_couple
173     !
174     ! Read and interpolate sulfate
[3333]175     IF ( flag_aerosol .EQ. 1 .OR. flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
[2004]176
[2146]177        CALL readaerosol_interp(id_ASSO4M_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, sulfacc, sulfacc_pi,loadso4)
178     ELSE
179        sulfacc(:,:) = 0. ; sulfacc_pi(:,:) = 0.
180        loadso4=0.
[2693]181     ENDIF
[2004]182
[2146]183     ! Read and interpolate bcsol and bcins
[3333]184     IF ( flag_aerosol .EQ. 2 .OR. flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
[2004]185
[2146]186        ! Get bc aerosol distribution
187        CALL readaerosol_interp(id_ASBCM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi, load_tmp1 )
188        CALL readaerosol_interp(id_AIBCM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi, load_tmp2 )
189        loadbc(:)=load_tmp1(:)+load_tmp2(:)
190     ELSE
191        bcsol(:,:) = 0. ; bcsol_pi(:,:) = 0.
192        bcins(:,:) = 0. ; bcins_pi(:,:) = 0.
193        loadbc=0.
[2693]194     ENDIF
[2004]195
[2146]196     ! Read and interpolate pomsol and pomins
[3333]197     IF ( flag_aerosol .EQ. 3 .OR. flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
[2004]198
[2953]199        CALL readaerosol_interp(id_ASPOMM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi, load_tmp3)
200        CALL readaerosol_interp(id_AIPOMM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi, load_tmp4)
201        loadoa(:)=load_tmp3(:)+load_tmp4(:)
[2146]202     ELSE
203        pomsol(:,:) = 0. ; pomsol_pi(:,:) = 0.
204        pomins(:,:) = 0. ; pomins_pi(:,:) = 0.
205        loadoa=0.
[2693]206     ENDIF
[2004]207
[2146]208     ! Read and interpolate csssm, ssssm, assssm
[3333]209     IF (flag_aerosol .EQ. 4 .OR. flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
[2004]210
[2148]211        CALL readaerosol_interp(id_SSSSM_phy ,itap, pdtphys,rjourvrai, &
[2953]212        debut, pplay, paprs, t_seri, sssupco, sssupco_pi, load_tmp5)
[2148]213        CALL readaerosol_interp(id_CSSSM_phy ,itap, pdtphys,rjourvrai, &
[2953]214        debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi, load_tmp6)
[2823]215        CALL readaerosol_interp(id_ASSSM_phy ,itap, pdtphys,rjourvrai, &
[2953]216        debut, pplay, paprs, t_seri, ssacu, ssacu_pi, load_tmp7)
217        loadss(:)=load_tmp5(:)+load_tmp6(:)+load_tmp7(:)
[2146]218     ELSE
219        sscoarse(:,:) = 0. ; sscoarse_pi(:,:) = 0.
220        ssacu(:,:)    = 0. ; ssacu_pi(:,:) = 0.
221        sssupco(:,:)  = 0. ; sssupco_pi = 0.
222        loadss=0.
223     ENDIF
[2004]224
[2146]225     ! Read and interpolate cidustm
[3333]226     IF (flag_aerosol .EQ. 5 .OR. flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
[2004]227
[2146]228        CALL readaerosol_interp(id_CIDUSTM_phy, itap, pdtphys, rjourvrai, debut, pplay, paprs, t_seri, cidust, cidust_pi, loaddust)
229
230     ELSE
231        cidust(:,:) = 0. ; cidust_pi(:,:) = 0.
232        loaddust=0.
233     ENDIF
234     !
[2862]235     ! Read and interpolate asno3m, csno3m, cino3m
[3333]236     IF (flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN
[2823]237
238        CALL readaerosol_interp(id_ASNO3M_phy, itap, pdtphys, rjourvrai, &
[2953]239        debut, pplay, paprs, t_seri, nitracc, nitracc_pi, load_tmp8)
[2823]240        CALL readaerosol_interp(id_CSNO3M_phy, itap, pdtphys, rjourvrai, &
[2953]241        debut, pplay, paprs, t_seri, nitrcoarse, nitrcoarse_pi, load_tmp9)
[2823]242        CALL readaerosol_interp(id_CINO3M_phy, itap, pdtphys, rjourvrai, &
[2953]243        debut, pplay, paprs, t_seri, nitrinscoarse, nitrinscoarse_pi, load_tmp10)
244        loadno3(:)=load_tmp8(:)+load_tmp9(:)+load_tmp10(:)
[2823]245
246     ELSE
247        nitracc(:,:)         =   0.0 ; nitracc_pi(:,:)      =   0.0
248        nitrcoarse(:,:)      =   0.0 ; nitrcoarse_pi(:,:)   =   0.0
249        nitrinscoarse(:,:)   =   0.0 ; nitrinscoarse_pi(:,:)=   0.0
250        loadno3(:)=0.0
251     ENDIF
252     !
253     ! CSSO4M is set to 0 as not reliable
[2146]254     sulfcoarse(:,:)      =   0.0 ! CSSO4M (=SO4) + CSMSAM (=MSA)
255     sulfcoarse_pi(:,:)   =   0.0 ! CSSO4M (=SO4) + CSMSAM (=MSA) pre-ind
256
257  ENDIF !--not aerosol_couple
258
259  !
260  ! Store all aerosols in one variable
261  !
262  m_allaer(:,:,id_ASBCM_phy)  = bcsol(:,:)        ! ASBCM
263  m_allaer(:,:,id_ASPOMM_phy) = pomsol(:,:)       ! ASPOMM
264  m_allaer(:,:,id_ASSO4M_phy) = sulfacc(:,:)      ! ASSO4M (= SO4)
265  m_allaer(:,:,id_CSSO4M_phy) = sulfcoarse(:,:)   ! CSSO4M
266  m_allaer(:,:,id_SSSSM_phy)  = sssupco(:,:)      ! SSSSM
267  m_allaer(:,:,id_CSSSM_phy)  = sscoarse(:,:)     ! CSSSM
268  m_allaer(:,:,id_ASSSM_phy)  = ssacu(:,:)        ! ASSSM
269  m_allaer(:,:,id_CIDUSTM_phy)= cidust(:,:)       ! CIDUSTM
270  m_allaer(:,:,id_AIBCM_phy)  = bcins(:,:)        ! AIBCM
271  m_allaer(:,:,id_ASNO3M_phy) = nitracc(:,:)      ! ASNO3M
272  m_allaer(:,:,id_CSNO3M_phy) = nitrcoarse(:,:)   ! CSNO3M
273  m_allaer(:,:,id_CINO3M_phy) = nitrinscoarse(:,:)! CINO3M
274  m_allaer(:,:,id_AIPOMM_phy) = pomins(:,:)       ! AIPOMM
275  m_allaer(:,:,id_STRAT_phy)  = 0.0
276
277  !RAF
278  m_allaer_pi(:,:,id_ASBCM_phy)  = bcsol_pi(:,:)        ! ASBCM pre-ind
279  m_allaer_pi(:,:,id_ASPOMM_phy) = pomsol_pi(:,:)       ! ASPOMM pre-ind
280  m_allaer_pi(:,:,id_ASSO4M_phy) = sulfacc_pi(:,:)      ! ASSO4M (= SO4) pre-ind
281  m_allaer_pi(:,:,id_CSSO4M_phy) = sulfcoarse_pi(:,:)   ! CSSO4M pre-ind
282  m_allaer_pi(:,:,id_SSSSM_phy)  = sssupco_pi(:,:)      ! SSSSM pre-ind
283  m_allaer_pi(:,:,id_CSSSM_phy)  = sscoarse_pi(:,:)     ! CSSSM pre-ind
284  m_allaer_pi(:,:,id_ASSSM_phy)  = ssacu_pi(:,:)        ! ASSSM pre-ind
285  m_allaer_pi(:,:,id_CIDUSTM_phy)= cidust_pi(:,:)       ! CIDUSTM pre-ind
286  m_allaer_pi(:,:,id_AIBCM_phy)  = bcins_pi(:,:)        ! AIBCM pre-ind
287  m_allaer_pi(:,:,id_ASNO3M_phy) = nitracc_pi(:,:)      ! ASNO3M pre-ind
288  m_allaer_pi(:,:,id_CSNO3M_phy) = nitrcoarse_pi(:,:)   ! CSNO3M pre-ind
289  m_allaer_pi(:,:,id_CINO3M_phy) = nitrinscoarse_pi(:,:)! CINO3M pre-ind
290  m_allaer_pi(:,:,id_AIPOMM_phy) = pomins_pi(:,:)       ! AIPOMM pre-ind
291  m_allaer_pi(:,:,id_STRAT_phy)  = 0.0
292
293  !
294  ! Calculate the total mass of all soluble aersosols
295  ! to be revisited for AR6
[2738]296  mass_solu_aero(:,:)    = sulfacc(:,:)    + bcsol(:,:)    + pomsol(:,:)    + nitracc(:,:)    + ssacu(:,:)
297  mass_solu_aero_pi(:,:) = sulfacc_pi(:,:) + bcsol_pi(:,:) + pomsol_pi(:,:) + nitracc_pi(:,:) + ssacu_pi(:,:)
[2146]298
299  !****************************************************************************************
300  ! 2) Calculate optical properties for the aerosols
301  !
302  !****************************************************************************************
[2004]303  DO k = 1, klev
304     DO i = 1, klon
305        pdel(i,k) = paprs(i,k) - paprs (i,k+1)
[2693]306     ENDDO
307  ENDDO
[2004]308
[2325]309!--new aerosol properties
[2146]310  ! aeropt_6bands for rrtm
[2644]311  CALL aeropt_6bands_rrtm(          &
312       pdel, m_allaer, rhcl,        &
313       tau_aero, piz_aero, cg_aero, &
314       m_allaer_pi, flag_aerosol,   &
[3480]315       flag_bc_internal_mixture, zrho, ok_volcan )
[2004]316
[2146]317  ! aeropt_5wv only for validation and diagnostics
[2644]318  CALL aeropt_5wv_rrtm(              &
319       pdel, m_allaer,               &
320       rhcl, aerindex,               &
321       flag_aerosol,                 &
322       flag_bc_internal_mixture,     &
323       pplay, t_seri,                &
[2854]324       tausum_aero, drytausum_aero, tau3d_aero )
[2004]325
[2738]326  !--call LW optical properties for tropospheric aerosols
327  CALL aeropt_lw_rrtm(ok_alw, pdel, zrho, flag_aerosol, m_allaer, m_allaer_pi)
328
[2146]329  ! Diagnostics calculation for CMIP5 protocol
330  sconcso4(:)  =m_allaer(:,1,id_ASSO4M_phy)*1.e-9
331  sconcno3(:)  =(m_allaer(:,1,id_ASNO3M_phy)+m_allaer(:,1,id_CSNO3M_phy)+m_allaer(:,1,id_CINO3M_phy))*1.e-9
332  sconcoa(:)   =(m_allaer(:,1,id_ASPOMM_phy)+m_allaer(:,1,id_AIPOMM_phy))*1.e-9
333  sconcbc(:)   =(m_allaer(:,1,id_ASBCM_phy)+m_allaer(:,1,id_AIBCM_phy))*1.e-9
334  sconcss(:)   =(m_allaer(:,1,id_ASSSM_phy)+m_allaer(:,1,id_CSSSM_phy)+m_allaer(:,1,id_SSSSM_phy))*1.e-9
335  sconcdust(:) =m_allaer(:,1,id_CIDUSTM_phy)*1.e-9
336  concso4(:,:) =m_allaer(:,:,id_ASSO4M_phy)*1.e-9
337  concno3(:,:) =(m_allaer(:,:,id_ASNO3M_phy)+m_allaer(:,:,id_CSNO3M_phy)+m_allaer(:,:,id_CINO3M_phy))*1.e-9
338  concoa(:,:)  =(m_allaer(:,:,id_ASPOMM_phy)+m_allaer(:,:,id_AIPOMM_phy))*1.e-9
339  concbc(:,:)  =(m_allaer(:,:,id_ASBCM_phy)+m_allaer(:,:,id_AIBCM_phy))*1.e-9
340  concss(:,:)  =(m_allaer(:,:,id_ASSSM_phy)+m_allaer(:,:,id_CSSSM_phy)+m_allaer(:,:,id_SSSSM_phy))*1.e-9
341  concdust(:,:)=m_allaer(:,:,id_CIDUSTM_phy)*1.e-9
342
[2004]343END SUBROUTINE readaerosol_optic_rrtm
Note: See TracBrowser for help on using the repository browser.