source: LMDZ6/trunk/libf/phylmd/ecrad/ifsrrtm/rrtm_cmbgb6.F90 @ 4773

Last change on this file since 4773 was 4773, checked in by idelkadi, 6 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_CMBGB6
3!***************************************************************************
4
5!     BAND 6:  820-980 cm-1 (low - H2O; high - nothing)
6!     ABozzo 201306 updated to rrtmg v4.85
7!     band 6:  820-980 cm-1 (low key - h2o; low minor - co2)
8!                           (high key - nothing; high minor - cfc11, cfc12)
9!***************************************************************************
10
11! Parameters
12USE PARKIND1  ,ONLY : JPIM     ,JPRB
13USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK, JPHOOK
14
15USE YOERRTO6 , ONLY : KAO     ,SELFREFO   , FORREFO, FRACREFAO  ,&
16 & KAO_MCO2 ,CFC11ADJO,CFC12O 
17USE YOERRTA6 , ONLY : KA      ,SELFREF    , FORREF, FRACREFA   ,&
18 & KA_MCO2  ,CFC11ADJ ,CFC12 
19USE YOERRTRWT, ONLY : RWGT
20USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN     
21
22IMPLICIT NONE
23
24INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JP, JT
25
26REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK, Z_SUMK2, Z_SUMK3
27REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
28
29IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB6',0,ZHOOK_HANDLE)
30DO JT = 1,5
31  DO JP = 1,13
32    IPRSM = 0
33    DO IGC = 1,NGC(6)
34      Z_SUMK = 0.0_JPRB
35      DO IPR = 1, NGN(NGS(5)+IGC)
36        IPRSM = IPRSM + 1
37
38        Z_SUMK = Z_SUMK + KAO(JT,JP,IPRSM)*RWGT(IPRSM+80)
39      ENDDO
40
41      KA(JT,JP,IGC) = Z_SUMK
42    ENDDO
43  ENDDO
44ENDDO
45
46DO JT = 1,19
47    IPRSM = 0
48    DO IGC = 1,NGC(6)
49        Z_SUMK = 0.0_JPRB
50        DO IPR = 1, NGN(NGS(5)+IGC)
51            IPRSM = IPRSM + 1
52            Z_SUMK = Z_SUMK + KAO_MCO2(JT,IPRSM)*RWGT(IPRSM+80)
53        ENDDO
54        KA_MCO2(JT,IGC) = Z_SUMK
55    ENDDO
56ENDDO
57
58DO JT = 1,10
59  IPRSM = 0
60  DO IGC = 1,NGC(6)
61    Z_SUMK = 0.0_JPRB
62    DO IPR = 1, NGN(NGS(5)+IGC)
63      IPRSM = IPRSM + 1
64
65      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+80)
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(6)
75      Z_SUMK = 0.0_JPRB
76      DO IPR = 1, NGN(NGS(5)+IGC)
77         IPRSM = IPRSM + 1
78         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+80)
79      ENDDO
80      FORREF(JT,IGC) = Z_SUMK
81   ENDDO
82ENDDO
83
84IPRSM = 0
85DO IGC = 1,NGC(6)
86  Z_SUMF = 0.0_JPRB
87  Z_SUMK2= 0.0_JPRB
88  Z_SUMK3= 0.0_JPRB
89  DO IPR = 1, NGN(NGS(5)+IGC)
90    IPRSM = IPRSM + 1
91
92    Z_SUMF = Z_SUMF + FRACREFAO(IPRSM)
93    Z_SUMK2= Z_SUMK2+ CFC11ADJO(IPRSM)*RWGT(IPRSM+80)
94    Z_SUMK3= Z_SUMK3+ CFC12O(IPRSM)*RWGT(IPRSM+80)
95  ENDDO
96
97  FRACREFA(IGC) = Z_SUMF
98  CFC11ADJ(IGC) = Z_SUMK2
99  CFC12(IGC) = Z_SUMK3
100ENDDO
101
102
103IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB6',1,ZHOOK_HANDLE)
104END SUBROUTINE RRTM_CMBGB6
Note: See TracBrowser for help on using the repository browser.