GCC Code Coverage Report


Directory: ./
File: rad/aeropt_lw_rrtm.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 16 0.0%
Branches: 0 24 0.0%

Line Branch Exec Source
1 !
2 ! aeropt_lw_rrtm.F90 2014-05-13 C. Kleinschmitt
3 ! 2016-05-03 O. Boucher
4 ! 2016-12-17 O. Boucher
5 !
6 ! This routine feeds aerosol LW properties to RRTM
7 ! we only consider absorption (not scattering)
8 ! we only consider dust for now
9
10 SUBROUTINE AEROPT_LW_RRTM(ok_alw, pdel, zrho, flag_aerosol, m_allaer, m_allaer_pi)
11
12 USE dimphy
13 USE aero_mod
14 USE phys_state_var_mod, ONLY: tau_aero_lw_rrtm
15 USE YOERAD, ONLY: NLW
16 USE YOMCST, ONLY: RG
17
18 IMPLICIT NONE
19
20 INCLUDE "clesphys.h"
21 !
22 ! Input arguments:
23 !
24 LOGICAL, INTENT(IN) :: ok_alw
25 INTEGER, INTENT(IN) :: flag_aerosol
26 REAL, DIMENSION(klon,klev), INTENT(IN) :: pdel, zrho
27 REAL, DIMENSION(klon,klev,naero_tot), INTENT(IN) :: m_allaer, m_allaer_pi
28 !
29 INTEGER inu, i, k
30 REAL :: zdh(klon,klev)
31 REAL :: tmp_var, tmp_var_pi
32 CHARACTER*20 modname
33 !
34 !--absorption coefficient for CIDUST
35 REAL:: alpha_abs_CIDUST_16bands(nbands_lw_rrtm) !--unit m2/g
36 DATA alpha_abs_CIDUST_16bands / &
37 0.001, 0.003, 0.005, 0.006, 0.012, 0.030, 0.148, 0.098, &
38 0.017, 0.053, 0.031, 0.008, 0.010, 0.011, 0.013, 0.015 /
39 !
40 modname='aeropt_lw_rrtm'
41 !
42 IF (NLW.NE.nbands_lw_rrtm) THEN
43 CALL abort_physic(modname,'Erreur NLW doit etre egal a 16 pour cette routine',1)
44 ENDIF
45 !
46 IF (ok_alw) THEN !--aerosol LW effects
47 !
48 IF (flag_aerosol.EQ.5.OR.flag_aerosol.EQ.6.OR.flag_aerosol.EQ.7) THEN !-Dust
49 !
50 zdh(:,:)=pdel(:,:)/(RG*zrho(:,:)) ! m
51 !
52 DO k=1, klev
53 DO i=1, klon
54 !
55 tmp_var =m_allaer(i,k,id_CIDUSTM_phy) /1.e6*zdh(i,k) !--g/m2
56 tmp_var_pi=m_allaer_pi(i,k,id_CIDUSTM_phy)/1.e6*zdh(i,k) !--g/m2
57 !
58 DO inu=1, NLW
59 !
60 !--total aerosol
61 tau_aero_lw_rrtm(i,k,2,inu) = MAX(1.e-15,tmp_var*alpha_abs_CIDUST_16bands(inu))
62 !--natural aerosol
63 ! tau_aero_lw_rrtm(:,:,1,inu) = MAX(1.e-15,tmp_var_pi*alpha_abs_CIDUST_16bands(inu))
64 tau_aero_lw_rrtm(i,k,1,inu) = 1.e-15 !--test
65 !
66 ENDDO
67 ENDDO
68 !
69 ENDDO
70 !
71 ENDIF
72 !
73 ELSE !--no aerosol LW effects
74 !
75 tau_aero_lw_rrtm = 1.e-15
76 ENDIF
77 !
78 END SUBROUTINE AEROPT_LW_RRTM
79