source: LMDZ6/trunk/libf/phylmd/ecrad/ifsrrtm/rrtm_cmbgb14.F90 @ 5127

Last change on this file since 5127 was 4773, checked in by idelkadi, 12 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.2 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB14
3!***************************************************************************
4
5!     BAND 14:  2250-2380 cm-1 (low - CO2; high - CO2)
6!     ABozzo 201306 updated to rrtmg v4.85
7!***************************************************************************
8
9! Parameters
10USE PARKIND1  ,ONLY : JPIM     ,JPRB
11USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK, JPHOOK
12
13USE YOERRTO14, ONLY : KAO     ,KBO     ,SELFREFO, FORREFO   ,FRACREFAO  ,FRACREFBO
14USE YOERRTA14, ONLY : KA      ,KB      ,SELFREF,  FORREF    ,FRACREFA   ,FRACREFB
15USE YOERRTRWT, ONLY : RWGT
16USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
17
18IMPLICIT NONE
19
20INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JP, JT
21
22REAL(KIND=JPRB) :: Z_SUMF1, Z_SUMF2, Z_SUMK
23REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
24
25IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB14',0,ZHOOK_HANDLE)
26DO JT = 1,5
27  DO JP = 1,13
28    IPRSM = 0
29    DO IGC = 1,NGC(14)
30      Z_SUMK = 0.0_JPRB
31      DO IPR = 1, NGN(NGS(13)+IGC)
32        IPRSM = IPRSM + 1
33
34        Z_SUMK = Z_SUMK + KAO(JT,JP,IPRSM)*RWGT(IPRSM+208)
35      ENDDO
36
37      KA(JT,JP,IGC) = Z_SUMK
38    ENDDO
39  ENDDO
40ENDDO
41
42DO JT = 1,5
43  DO JP = 13,59
44    IPRSM = 0
45    DO IGC = 1,NGC(14)
46      Z_SUMK = 0.0_JPRB
47      DO IPR = 1, NGN(NGS(13)+IGC)
48        IPRSM = IPRSM + 1
49
50        Z_SUMK = Z_SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM+208)
51      ENDDO
52
53      KB(JT,JP,IGC) = Z_SUMK
54    ENDDO
55  ENDDO
56ENDDO
57
58DO JT = 1,10
59  IPRSM = 0
60  DO IGC = 1,NGC(14)
61    Z_SUMK = 0.0_JPRB
62    DO IPR = 1, NGN(NGS(13)+IGC)
63      IPRSM = IPRSM + 1
64
65      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+208)
66    ENDDO
67
68    SELFREF(JT,IGC) = Z_SUMK
69  ENDDO
70ENDDO
71
72DO JT = 1,4
73   IPRSM = 0
74   DO IGC = 1,NGC(14)
75      Z_SUMK = 0.0_JPRB
76      DO IPR = 1, NGN(NGS(13)+IGC)
77         IPRSM = IPRSM + 1
78         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+208)
79      ENDDO
80      FORREF(JT,IGC) = Z_SUMK
81   ENDDO
82ENDDO
83
84IPRSM = 0
85DO IGC = 1,NGC(14)
86  Z_SUMF1= 0.0_JPRB
87  Z_SUMF2= 0.0_JPRB
88  DO IPR = 1, NGN(NGS(13)+IGC)
89    IPRSM = IPRSM + 1
90
91    Z_SUMF1= Z_SUMF1+ FRACREFAO(IPRSM)
92    Z_SUMF2= Z_SUMF2+ FRACREFBO(IPRSM)
93  ENDDO
94
95  FRACREFA(IGC) = Z_SUMF1
96  FRACREFB(IGC) = Z_SUMF2
97ENDDO
98
99
100IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB14',1,ZHOOK_HANDLE)
101END SUBROUTINE RRTM_CMBGB14
Note: See TracBrowser for help on using the repository browser.