LMDZ
rrtm_taumol10.F90
Go to the documentation of this file.
1 !*******************************************************************************
2 SUBROUTINE rrtm_taumol10 (KLEV,P_TAU,&
3  & p_tauaerl,p_fac00,p_fac01,p_fac10,p_fac11,k_jp,k_jt,k_jt1,&
4  & p_colh2o,k_laytrop,pfrac)
5 
6 ! BAND 10: 1390-1480 cm-1 (low - H2O; high - H2O)
7 
8 ! Modifications
9 ! M.Hamrud 01-Oct-2003 CY28 Cleaning
10 
11 ! D Salmond 2000-05-15 speed-up
12 ! JJMorcrette 2000-05-17 speed-up
13 
14 USE parkind1 ,ONLY : jpim ,jprb
15 USE yomhook ,ONLY : lhook, dr_hook
16 
17 USE parrrtm , ONLY : jplay ,jpband ,jpgpt ,ng10 ,ngs9
18 USE yoerrtwn , ONLY : nspa ,nspb
19 USE yoerrta10, ONLY : absa ,absb ,fracrefa, fracrefb
20 
21 ! Input
22 !#include "yoeratm.h"
23 
24 ! REAL TAUAER(JPLAY)
25 
26 IMPLICIT NONE
27 
28 ! Output
29 INTEGER(KIND=JPIM),INTENT(IN) :: KLEV
30 REAL(KIND=JPRB) ,INTENT(OUT) :: P_TAU(jpgpt,jplay)
31 REAL(KIND=JPRB) ,INTENT(IN) :: P_TAUAERL(jplay,jpband)
32 REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC00(jplay)
33 REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC01(jplay)
34 REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC10(jplay)
35 REAL(KIND=JPRB) ,INTENT(IN) :: P_FAC11(jplay)
36 INTEGER(KIND=JPIM),INTENT(IN) :: K_JP(jplay)
37 INTEGER(KIND=JPIM),INTENT(IN) :: K_JT(jplay)
38 INTEGER(KIND=JPIM),INTENT(IN) :: K_JT1(jplay)
39 REAL(KIND=JPRB) ,INTENT(IN) :: P_COLH2O(jplay)
40 INTEGER(KIND=JPIM),INTENT(IN) :: K_LAYTROP
41 REAL(KIND=JPRB) ,INTENT(OUT) :: PFRAC(jpgpt,jplay)
42 !- from AER
43 !- from INTFAC
44 !- from INTIND
45 !- from PROFDATA
46 !- from SP
47 INTEGER(KIND=JPIM) :: IND0(jplay),IND1(jplay)
48 
49 INTEGER(KIND=JPIM) :: IG, I_LAY
50 REAL(KIND=JPRB) :: ZHOOK_HANDLE
51 
52 ! EQUIVALENCE (TAUAERL(1,10),TAUAER)
53 
54 ! Compute the optical depth by interpolating in ln(pressure) and
55 ! temperature.
56 
57 IF (lhook) CALL dr_hook('RRTM_TAUMOL10',0,zhook_handle)
58 DO i_lay = 1, k_laytrop
59  ind0(i_lay) = ((k_jp(i_lay)-1)*5+(k_jt(i_lay)-1))*nspa(10) + 1
60  ind1(i_lay) = (k_jp(i_lay)*5+(k_jt1(i_lay)-1))*nspa(10) + 1
61 ENDDO
62 
63 !-- DS_000515
64 DO ig = 1, ng10
65  DO i_lay = 1, k_laytrop
66 !-- DS_000515
67  p_tau(ngs9+ig,i_lay) = p_colh2o(i_lay) *&
68  & (p_fac00(i_lay) * absa(ind0(i_lay) ,ig) +&
69  & p_fac10(i_lay) * absa(ind0(i_lay)+1,ig) +&
70  & p_fac01(i_lay) * absa(ind1(i_lay) ,ig) +&
71  & p_fac11(i_lay) * absa(ind1(i_lay)+1,ig)) &
72  & + p_tauaerl(i_lay,10)
73  pfrac(ngs9+ig,i_lay) = fracrefa(ig)
74  ENDDO
75 ENDDO
76 
77 DO i_lay = k_laytrop+1, klev
78  ind0(i_lay) = ((k_jp(i_lay)-13)*5+(k_jt(i_lay)-1))*nspb(10) + 1
79  ind1(i_lay) = ((k_jp(i_lay)-12)*5+(k_jt1(i_lay)-1))*nspb(10) + 1
80 ENDDO
81 
82 !-- JJM_000517
83 DO ig = 1, ng10
84  DO i_lay = k_laytrop+1, klev
85 !-- JJM_000517
86  p_tau(ngs9+ig,i_lay) = p_colh2o(i_lay) *&
87  & (p_fac00(i_lay) * absb(ind0(i_lay) ,ig) +&
88  & p_fac10(i_lay) * absb(ind0(i_lay)+1,ig) +&
89  & p_fac01(i_lay) * absb(ind1(i_lay) ,ig) +&
90  & p_fac11(i_lay) * absb(ind1(i_lay)+1,ig)) &
91  & + p_tauaerl(i_lay,10)
92  pfrac(ngs9+ig,i_lay) = fracrefb(ig)
93  ENDDO
94 ENDDO
95 
96 IF (lhook) CALL dr_hook('RRTM_TAUMOL10',1,zhook_handle)
97 END SUBROUTINE rrtm_taumol10
real(kind=jprb), dimension(ng10) fracrefb
Definition: yoerrta10.F90:17
integer(kind=jpim), parameter jpgpt
Definition: parrrtm.F90:21
integer(kind=jpim), parameter jpband
Definition: parrrtm.F90:18
subroutine rrtm_taumol10(KLEV, P_TAU, P_TAUAERL, P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, P_COLH2O, K_LAYTROP, PFRAC)
real(kind=jprb), dimension(ng10) fracrefa
Definition: yoerrta10.F90:16
real(kind=jprb), dimension(235, ng10) absb
Definition: yoerrta10.F90:20
integer, parameter jprb
Definition: parkind1.F90:31
integer(kind=jpim), parameter ngs9
Definition: parrrtm.F90:48
integer(kind=jpim), dimension(16) nspb
Definition: yoerrtwn.F90:13
integer(kind=jpim), dimension(16) nspa
Definition: yoerrtwn.F90:12
logical lhook
Definition: yomhook.F90:12
integer(kind=jpim), parameter ng10
Definition: parrrtm.F90:32
integer(kind=jpim), parameter jplay
Definition: parrrtm.F90:15
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
integer, parameter jpim
Definition: parkind1.F90:13
real(kind=jprb), dimension(65, ng10) absa
Definition: yoerrta10.F90:19