source: LMDZ6/branches/Amaury_dev/libf/phylmd/ecrad/ifsrrtm/rrtm_cmbgb16.F90

Last change on this file was 4773, checked in by idelkadi, 11 months ago
  • Update of Ecrad in LMDZ The same organization of the Ecrad offline version is retained in order to facilitate the updating of Ecrad in LMDZ and the comparison between online and offline results. version 1.6.1 of Ecrad (https://github.com/lguez/ecrad.git)
  • Implementation of the double call of Ecrad in LMDZ


File size: 2.5 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB16
3!***************************************************************************
4
5!     BAND 16:  2600-3000 cm-1 (low - H2O,CH4; high - nothing)
6!     ABozzo 201306 updated to rrtmg v4.85
7!     band 16:  2600-3250 cm-1 (low key- h2o,ch4; high key - ch4)
8!***************************************************************************
9
10! Parameters
11USE PARKIND1  ,ONLY : JPIM     ,JPRB
12USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK, JPHOOK
13
14USE YOERRTO16, ONLY : KAO,KBO   ,SELFREFO,FORREFO  ,FRACREFAO,FRACREFBO
15USE YOERRTA16, ONLY : KA,KB     ,SELFREF,FORREF    ,FRACREFA,FRACREFB
16USE YOERRTRWT, ONLY : RWGT
17USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
18
19IMPLICIT NONE
20
21INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JN, JP, JT
22
23REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK
24REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
25
26IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB16',0,ZHOOK_HANDLE)
27DO JN = 1,9
28  DO JT = 1,5
29    DO JP = 1,13
30      IPRSM = 0
31      DO IGC = 1,NGC(16)
32        Z_SUMK = 0.0_JPRB
33        DO IPR = 1, NGN(NGS(15)+IGC)
34          IPRSM = IPRSM + 1
35
36          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+240)
37        ENDDO
38
39        KA(JN,JT,JP,IGC) = Z_SUMK
40      ENDDO
41    ENDDO
42  ENDDO
43ENDDO
44
45DO JT = 1,5
46   DO JP = 13,59
47      IPRSM = 0
48      DO IGC = 1,NGC(16)
49         Z_SUMK = 0.0_JPRB
50         DO IPR = 1, NGN(NGS(15)+IGC)
51            IPRSM = IPRSM + 1
52            Z_SUMK = Z_SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM+240)
53         ENDDO
54         KB(JT,JP,IGC) = Z_SUMK
55      ENDDO
56   ENDDO
57ENDDO
58
59
60DO JT = 1,10
61  IPRSM = 0
62  DO IGC = 1,NGC(16)
63    Z_SUMK = 0.0_JPRB
64    DO IPR = 1, NGN(NGS(15)+IGC)
65      IPRSM = IPRSM + 1
66
67      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+240)
68    ENDDO
69
70    SELFREF(JT,IGC) = Z_SUMK
71  ENDDO
72ENDDO
73
74DO JT = 1,4
75   IPRSM = 0
76   DO IGC = 1,NGC(16)
77      Z_SUMK = 0.0_JPRB
78      DO IPR = 1, NGN(NGS(15)+IGC)
79         IPRSM = IPRSM + 1
80         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+240)
81      ENDDO
82      FORREF(JT,IGC) = Z_SUMK
83   ENDDO
84ENDDO
85
86IPRSM = 0
87DO IGC = 1,NGC(16)
88   Z_SUMF = 0.0_JPRB
89   DO IPR = 1, NGN(NGS(15)+IGC)
90      IPRSM = IPRSM + 1
91      Z_SUMF = Z_SUMF + FRACREFBO(IPRSM)
92   ENDDO
93   FRACREFB(IGC) = Z_SUMF
94ENDDO
95
96DO JP = 1,9
97  IPRSM = 0
98  DO IGC = 1,NGC(16)
99    Z_SUMF = 0.0_JPRB
100    DO IPR = 1, NGN(NGS(15)+IGC)
101      IPRSM = IPRSM + 1
102
103      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
104    ENDDO
105
106    FRACREFA(IGC,JP) = Z_SUMF
107  ENDDO
108ENDDO
109
110 
111IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB16',1,ZHOOK_HANDLE)
112END SUBROUTINE RRTM_CMBGB16
Note: See TracBrowser for help on using the repository browser.