GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/aeropt_lw_rrtm.F90 Lines: 0 16 0.0 %
Date: 2023-06-30 12:56:34 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