source: LMDZ6/trunk/libf/phylmd/ecrad/ifsrrtm/rrtm_cmbgb4.F90 @ 4824

Last change on this file since 4824 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.5 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB4
3!***************************************************************************
4
5!     BAND 4:  630-700 cm-1 (low - H2O,CO2; high - O3,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 YOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   , FORREFO, FRACREFAO  ,FRACREFBO
14USE YOERRTA4 , 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, JN, JP, JT
21
22REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK
23REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
24
25IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB4',0,ZHOOK_HANDLE)
26DO JN = 1,9
27  DO JT = 1,5
28    DO JP = 1,13
29      IPRSM = 0
30      DO IGC = 1,NGC(4)
31        Z_SUMK = 0.0_JPRB
32        DO IPR = 1, NGN(NGS(3)+IGC)
33          IPRSM = IPRSM + 1
34
35          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+48)
36        ENDDO
37
38        KA(JN,JT,JP,IGC) = Z_SUMK
39      ENDDO
40    ENDDO
41  ENDDO
42ENDDO
43DO JN = 1,5
44  DO JT = 1,5
45    DO JP = 13,59
46      IPRSM = 0
47      DO IGC = 1,NGC(4)
48        Z_SUMK = 0.0_JPRB
49        DO IPR = 1, NGN(NGS(3)+IGC)
50          IPRSM = IPRSM + 1
51
52          Z_SUMK = Z_SUMK + KBO(JN,JT,JP,IPRSM)*RWGT(IPRSM+48)
53        ENDDO
54
55        KB(JN,JT,JP,IGC) = Z_SUMK
56      ENDDO
57    ENDDO
58  ENDDO
59ENDDO
60
61DO JT = 1,10
62  IPRSM = 0
63  DO IGC = 1,NGC(4)
64    Z_SUMK = 0.0_JPRB
65    DO IPR = 1, NGN(NGS(3)+IGC)
66      IPRSM = IPRSM + 1
67
68      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+48)
69    ENDDO
70
71    SELFREF(JT,IGC) = Z_SUMK
72  ENDDO
73ENDDO
74
75DO JT = 1,4
76   IPRSM = 0
77   DO IGC = 1,NGC(4)
78     Z_SUMK = 0.0_JPRB
79     DO IPR = 1, NGN(NGS(3)+IGC)
80       IPRSM = IPRSM + 1
81       Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+48)
82     ENDDO
83     FORREF(JT,IGC) = Z_SUMK
84   ENDDO
85ENDDO
86
87DO JP = 1,9
88  IPRSM = 0
89  DO IGC = 1,NGC(4)
90    Z_SUMF = 0.0_JPRB
91    DO IPR = 1, NGN(NGS(3)+IGC)
92      IPRSM = IPRSM + 1
93
94      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
95    ENDDO
96
97    FRACREFA(IGC,JP) = Z_SUMF
98  ENDDO
99ENDDO
100
101DO JP = 1,5
102  IPRSM = 0
103  DO IGC = 1,NGC(4)
104    Z_SUMF = 0.0_JPRB
105    DO IPR = 1, NGN(NGS(3)+IGC)
106      IPRSM = IPRSM + 1
107
108      Z_SUMF = Z_SUMF + FRACREFBO(IPRSM,JP)
109    ENDDO
110
111    FRACREFB(IGC,JP) = Z_SUMF
112  ENDDO
113ENDDO
114
115
116IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB4',1,ZHOOK_HANDLE)
117END SUBROUTINE RRTM_CMBGB4
Note: See TracBrowser for help on using the repository browser.