source: LMDZ6/branches/LMDZ-ECRAD/libf/phylmd/ecrad/rrtm_cmbgb13.F90 @ 4115

Last change on this file since 4115 was 3880, checked in by idelkadi, 4 years ago

Online implementation of the radiative transfer code ECRAD in LMDZ.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
  • Adaptation of compilation scripts (CPP_ECRAD keys)
  • Call of ecrad in radlwsw_m.F90 under the logical key iflag_rrtm = 2
File size: 3.0 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB13
3!***************************************************************************
4
5!     BAND 13:  2080-2250 cm-1 (low - H2O,N2O; high - nothing)
6!     ABozzo 201306 updated to rrtmg v4.85
7!     band 13:  2080-2250 cm-1 (low key - h2o,n2o; high minor - o3 minor)
8!***************************************************************************
9
10! Parameters
11USE PARKIND1  ,ONLY : JPIM     ,JPRB
12USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
13
14USE YOERRTO13, ONLY : KAO     ,SELFREFO, FORREFO   ,FRACREFAO, FRACREFBO, &
15                     & KAO_MCO2, KAO_MCO, KBO_MO3
16USE YOERRTA13, ONLY : KA      ,SELFREF, FORREF    ,FRACREFA, FRACREFB, &
17                     & KA_MCO2, KA_MCO, KB_MO3
18USE YOERRTRWT, ONLY : RWGT
19USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
20
21IMPLICIT NONE
22
23INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JN, JP, JT
24
25REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK, Z_SUMK1, Z_SUMK2
26REAL(KIND=JPRB) :: ZHOOK_HANDLE
27
28
29IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB13',0,ZHOOK_HANDLE)
30DO JN = 1,9
31  DO JT = 1,5
32    DO JP = 1,13
33      IPRSM = 0
34      DO IGC = 1,NGC(13)
35        Z_SUMK = 0.0_JPRB
36        DO IPR = 1, NGN(NGS(12)+IGC)
37          IPRSM = IPRSM + 1
38
39          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+192)
40        ENDDO
41
42        KA(JN,JT,JP,IGC) = Z_SUMK
43      ENDDO
44    ENDDO
45  ENDDO
46ENDDO
47
48DO JN = 1,9
49   DO JT = 1,19
50      IPRSM = 0
51      DO IGC = 1,NGC(13)
52        Z_SUMK1 = 0.0_JPRB
53        Z_SUMK2 = 0.0_JPRB
54         DO IPR = 1, NGN(NGS(12)+IGC)
55            IPRSM = IPRSM + 1
56            Z_SUMK1 = Z_SUMK1 + KAO_MCO2(JN,JT,IPRSM)*RWGT(IPRSM+192)
57            Z_SUMK2 = Z_SUMK2 + KAO_MCO(JN,JT,IPRSM)*RWGT(IPRSM+192)
58         ENDDO
59         KA_MCO2(JN,JT,IGC) = Z_SUMK1
60         KA_MCO(JN,JT,IGC) = Z_SUMK2
61      ENDDO
62   ENDDO
63ENDDO
64
65DO JT = 1,19
66   IPRSM = 0
67   DO IGC = 1,NGC(13)
68      Z_SUMK = 0.0_JPRB
69      DO IPR = 1, NGN(NGS(12)+IGC)
70         IPRSM = IPRSM + 1
71         Z_SUMK = Z_SUMK + KBO_MO3(JT,IPRSM)*RWGT(IPRSM+192)
72      ENDDO
73      KB_MO3(JT,IGC) = Z_SUMK
74   ENDDO
75ENDDO
76
77
78DO JT = 1,10
79  IPRSM = 0
80  DO IGC = 1,NGC(13)
81    Z_SUMK = 0.0_JPRB
82    DO IPR = 1, NGN(NGS(12)+IGC)
83      IPRSM = IPRSM + 1
84
85      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+192)
86    ENDDO
87
88    SELFREF(JT,IGC) = Z_SUMK
89  ENDDO
90ENDDO
91
92DO JT = 1,4
93   IPRSM = 0
94   DO IGC = 1,NGC(13)
95      Z_SUMK = 0.0_JPRB
96      DO IPR = 1, NGN(NGS(12)+IGC)
97         IPRSM = IPRSM + 1
98         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+192)
99      ENDDO
100      FORREF(JT,IGC) = Z_SUMK
101   ENDDO
102ENDDO
103
104IPRSM = 0
105DO IGC = 1,NGC(13)
106   Z_SUMF = 0.0_JPRB
107   DO IPR = 1, NGN(NGS(12)+IGC)
108      IPRSM = IPRSM + 1
109      Z_SUMF = Z_SUMF + FRACREFBO(IPRSM)
110   ENDDO
111   FRACREFB(IGC) = Z_SUMF
112ENDDO
113
114DO JP = 1,9
115  IPRSM = 0
116  DO IGC = 1,NGC(13)
117    Z_SUMF = 0.0_JPRB
118    DO IPR = 1, NGN(NGS(12)+IGC)
119      IPRSM = IPRSM + 1
120
121      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
122    ENDDO
123
124    FRACREFA(IGC,JP) = Z_SUMF
125  ENDDO
126ENDDO
127
128IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB13',1,ZHOOK_HANDLE)
129END SUBROUTINE RRTM_CMBGB13
Note: See TracBrowser for help on using the repository browser.