source: LMDZ6/trunk/libf/phylmd/ecrad/ifsrrtm/rrtm_cmbgb8.F90 @ 4791

Last change on this file since 4791 was 4773, checked in by idelkadi, 9 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: 3.2 KB
Line 
1!***************************************************************************
2SUBROUTINE RRTM_CMBGB8
3!***************************************************************************
4
5!     BAND 8:  1080-1180 cm-1 (low (i.e.>~300mb) - H2O; high - O3)
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 YOERRTO8 , ONLY : KAO     ,KBO     ,SELFREFO   ,FORREFO, FRACREFAO  ,&
14 & FRACREFBO, KAO_MCO2, KAO_MN2O ,KAO_MO3, KBO_MCO2, KBO_MN2O, &
15 & CFC12O   , CFC22ADJO 
16USE YOERRTA8 , ONLY : KA      ,KB      ,SELFREF    ,FORREF, FRACREFA   ,&
17 & FRACREFB , KA_MCO2, KA_MN2O ,KA_MO3, KB_MCO2, KB_MN2O,&
18 & CFC12    , CFC22ADJ 
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_SUMF1, Z_SUMF2, Z_SUMK, Z_SUMK1, Z_SUMK2, Z_SUMK3, Z_SUMK4, Z_SUMK5
27REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
28
29IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB8',0,ZHOOK_HANDLE)
30DO JT = 1,5
31  DO JP = 1,13
32    IPRSM = 0
33    DO IGC = 1,NGC(8)
34      Z_SUMK = 0.0_JPRB
35      DO IPR = 1, NGN(NGS(7)+IGC)
36        IPRSM = IPRSM + 1
37        Z_SUMK = Z_SUMK + KAO(JT,JP,IPRSM)*RWGT(IPRSM+112)
38      ENDDO
39      KA(JT,JP,IGC) = Z_SUMK
40    ENDDO
41  ENDDO
42ENDDO
43DO JT = 1,5
44  DO JP = 13,59
45    IPRSM = 0
46    DO IGC = 1,NGC(8)
47      Z_SUMK = 0.0_JPRB
48      DO IPR = 1, NGN(NGS(7)+IGC)
49        IPRSM = IPRSM + 1
50        Z_SUMK = Z_SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM+112)
51      ENDDO
52      KB(JT,JP,IGC) = Z_SUMK
53    ENDDO
54  ENDDO
55ENDDO
56
57DO JT = 1,10
58  IPRSM = 0
59  DO IGC = 1,NGC(8)
60    Z_SUMK = 0.0_JPRB
61    DO IPR = 1, NGN(NGS(7)+IGC)
62      IPRSM = IPRSM + 1
63      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+112)
64    ENDDO
65    SELFREF(JT,IGC) = Z_SUMK
66  ENDDO
67ENDDO
68DO JT = 1,4
69   IPRSM = 0
70   DO IGC = 1,NGC(8)
71      Z_SUMK = 0.0_JPRB
72      DO IPR = 1, NGN(NGS(7)+IGC)
73         IPRSM = IPRSM + 1
74         Z_SUMK = Z_SUMK + FORREFO(JT,IPRSM)*RWGT(IPRSM+112)
75      ENDDO
76      FORREF(JT,IGC) = Z_SUMK
77   ENDDO
78ENDDO
79
80DO JT = 1,19
81IPRSM = 0
82DO IGC = 1,NGC(8)
83  Z_SUMK1= 0.0_JPRB
84  Z_SUMK2= 0.0_JPRB
85  Z_SUMK3= 0.0_JPRB
86  Z_SUMK4= 0.0_JPRB
87  Z_SUMK5= 0.0_JPRB
88  DO IPR = 1, NGN(NGS(7)+IGC)
89    IPRSM = IPRSM + 1
90    Z_SUMK1= Z_SUMK1+ KAO_MCO2(JT,IPRSM)*RWGT(IPRSM+112)
91    Z_SUMK2= Z_SUMK2+ KBO_MCO2(JT,IPRSM)*RWGT(IPRSM+112)
92    Z_SUMK3= Z_SUMK3+ KAO_MO3(JT,IPRSM)*RWGT(IPRSM+112)
93    Z_SUMK4= Z_SUMK4+ KAO_MN2O(JT,IPRSM)*RWGT(IPRSM+112)
94    Z_SUMK5= Z_SUMK5+ KBO_MN2O(JT,IPRSM)*RWGT(IPRSM+112)
95  ENDDO
96  KA_MCO2(JT,IGC) = Z_SUMK1
97  KB_MCO2(JT,IGC) = Z_SUMK2
98  KA_MO3(JT,IGC) = Z_SUMK3
99  KA_MN2O(JT,IGC) = Z_SUMK4
100  KB_MN2O(JT,IGC) = Z_SUMK5
101ENDDO
102ENDDO
103
104
105
106IPRSM = 0
107DO IGC = 1,NGC(8)
108  Z_SUMF1= 0.0_JPRB
109  Z_SUMF2= 0.0_JPRB
110  Z_SUMK1= 0.0_JPRB
111  Z_SUMK2= 0.0_JPRB
112  DO IPR = 1, NGN(NGS(7)+IGC)
113    IPRSM = IPRSM + 1
114    Z_SUMF1= Z_SUMF1+ FRACREFAO(IPRSM)
115    Z_SUMF2= Z_SUMF2+ FRACREFBO(IPRSM)
116    Z_SUMK1= Z_SUMK1+ CFC12O(IPRSM)*RWGT(IPRSM+112)
117    Z_SUMK2= Z_SUMK2+ CFC22ADJO(IPRSM)*RWGT(IPRSM+112)
118  ENDDO
119  FRACREFA(IGC) = Z_SUMF1
120  FRACREFB(IGC) = Z_SUMF2
121  CFC12(IGC) = Z_SUMK1
122  CFC22ADJ(IGC) = Z_SUMK2
123ENDDO
124
125
126
127IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB8',1,ZHOOK_HANDLE)
128END SUBROUTINE RRTM_CMBGB8
Note: See TracBrowser for help on using the repository browser.