source: LMDZ6/trunk/libf/phylmd/ecrad.v1.5.1/surrtftr.F90 @ 5450

Last change on this file since 5450 was 3908, checked in by idelkadi, 4 years ago

Online implementation of the radiative transfer code ECRAD in the LMDZ model.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
    • interface routine : radiation_scheme.F90
  • Adaptation of compilation scripts :
    • compilation under CPP key CPP_ECRAD
    • compilation with option "-rad ecard" or "-ecard true"
    • The "-rad old/rtm/ecran" build option will need to replace the "-rrtm true" and "-ecrad true" options in the future.
  • Runing LMDZ simulations with ecrad, you need :
    • logical key iflag_rrtm = 2 in physiq.def
    • namelist_ecrad (DefLists?)
    • the directory "data" containing the configuration files is temporarily placed in ../libfphylmd/ecrad/
  • Compilation and execution are tested in the 1D case. The repository under svn would allow to continue the implementation work: tests, verification of the results, ...
File size: 11.9 KB
Line 
1SUBROUTINE SURRTFTR
2
3!     Adapted from Eli J. Mlawer, Atmospheric & Environmental Research.
4!     by JJMorcrette, ECMWF
5!
6!     JJMorcrette 20110613 flexible number of g-points
7!     ABozzo 201306 updated to rrtmg v4.85
8!
9!     ------------------------------------------------------------------
10
11USE PARKIND1  ,ONLY : JPIM ,   JPRB
12USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
13
14!USE PARRRTM   ,ONLY : JPBAND  ,JPG
15USE YOERRTFTR ,ONLY : NGC     ,NGS      ,NGN      ,NGB       ,NGM     , WT
16!USE YOERAD    ,ONLY : NREDGLW
17USE YOERRTM   ,ONLY : JPGPT
18!USE YOERRTM   ,ONLY : JPGPT, &
19!                    & NG1 , NG2 , NG3 , NG4 , NG5 , NG6 , NG7 , NG8 ,&
20!                    & NG9 , NG10, NG11, NG12, NG13, NG14, NG15, NG16,&
21!                    & NGS1, NGS2, NGS3, NGS4, NGS5, NGS6, NGS7, NGS8,&
22!                    & NGS9, NGS10,NGS11,NGS12,NGS13,NGS14,NGS15,NGS16
23!
24!     ------------------------------------------------------------------
25
26IMPLICIT NONE
27
28!INTEGER(KIND=JPIM) :: KGC(16), KGS(16), KGM(256), KGN(JPGPT), KGB(JPGPT)
29!!INTEGER(KIND=JPIM) :: KGC(JPG), KGS(JPG), KGM(JPG*JPBAND), KGN(JPGPT), KGB(JPGPT)
30
31INTEGER(KIND=JPIM) :: IGC70(16) , IGC140(16) , IGC256(16)
32INTEGER(KIND=JPIM) :: IGS70(16) , IGS140(16) , IGS256(16)
33
34INTEGER(KIND=JPIM) :: IGM70(256), IGM140(256), IGM256(256)
35
36INTEGER(KIND=JPIM) :: IGN70(70) , IGN140(140), IGN256(256)
37INTEGER(KIND=JPIM) :: IGB70(70) , IGB140(140), IGB256(256)
38
39REAL(KIND=JPRB) :: ZHOOK_HANDLE
40IF (LHOOK) CALL DR_HOOK('SURRTFTR',0,ZHOOK_HANDLE)
41
42!-------------------------------------------------------------------------------
43!-- configuration for EPS with 70 g-points
44
45IGC70( :) = (/4,  7,  8,  7,  8, 4,  6, 4,  6, 3, 4, 4, 2, 1, 1, 1 /)
46
47IGS70(:) = (/  4, 11,  19,  26,  34,  38,  44,  48, &
48            & 54, 57,  61,  65,  67,  68,  69,  70 /)
49   
50IGM70(:) = (/&
51 & 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,             &! Band 1
52 & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,7,7,             &! Band 2
53 & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,             &! Band 3
54 & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,7,7,             &! Band 4
55 & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,             &! Band 5
56 & 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,             &! Band 6
57 & 1,1,1,1,2,2,3,3,4,4,5,5,6,6,6,6,             &! Band 7
58 & 1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,             &! Band 8
59 & 1,1,2,2,3,3,4,4,5,5,5,5,6,6,6,6,             &! Band 9
60 & 1,1,1,1,2,2,2,2,3,3,3,3,3,3,3,3,             &! Band 10
61 & 1,1,2,2,2,2,3,3,3,3,4,4,4,4,4,4,             &! Band 11
62 & 1,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,             &! Band 12
63 & 1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,             &! Band 13
64 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 14
65 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 15
66 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1/)             ! Band 16 
67
68IGN70(:) = (/&
69 & 4,4,4,4,                                     &! Band 1
70 & 2,2,2,2,2,2,4,                               &! Band 2
71 & 2,2,2,2,2,2,2,2,                             &! Band 3
72 & 2,2,2,2,2,2,4,                               &! Band 4
73 & 2,2,2,2,2,2,2,2,                             &! Band 5
74 & 4,4,4,4,                                     &! Band 6
75 & 4,2,2,2,2,4,                                 &! Band 7
76 & 4,4,4,4,                                     &! Band 8
77 & 2,2,2,2,4,4,                                 &! Band 9
78 & 4,4,8,                                       &! Band 10
79 & 2,4,4,6,                                     &! Band 11
80 & 2,2,4,8,                                     &! Band 12
81 & 6,10,                                        &! Band 13
82 & 16,                                          &! Band 14
83 & 16,                                          &! Band 15
84 & 16/)                                          ! Band 16 
85
86IGB70(:) = (/&
87 & 1,1,1,1,                                      &! Band 1
88 & 2,2,2,2,2,2,2,                                &! Band 2
89 & 3,3,3,3,3,3,3,3,                              &! Band 3
90 & 4,4,4,4,4,4,4,                                &! Band 4
91 & 5,5,5,5,5,5,5,5,                              &! Band 5
92 & 6,6,6,6,                                      &! Band 6
93 & 7,7,7,7,7,7,                                  &! Band 7
94 & 8,8,8,8,                                      &! Band 8
95 & 9,9,9,9,9,9,                                  &! Band 9
96 & 10,10,10,                                     &! Band 10
97 & 11,11,11,11,                                  &! Band 11
98 & 12,12,12,12,                                  &! Band 12
99 & 13,13,                                        &! Band 13
100 & 14,                                           &! Band 14
101 & 15,                                           &! Band 15
102 & 16/)                                           ! Band 16 
103
104
105!------------------------------------------------------------------------------
106!-- configuration with 140 g-points
107
108IGC140(:) = (/10, 12, 16, 14, 16, 8, 12, 8, 12, 6, 8, 8, 4, 2, 2, 2 /)
109
110IGS140(:) = (/  10,  22,  38,  52,  68,  76,  88,  96, &
111            & 108, 114, 122, 130, 134, 136, 138, 140 /) 
112
113IGM140(:) = (/&
114 & 1,2,3,3,4,4,5,5,6,6,7,7,8,8,9,10,            &! Band 1
115 & 1,2,3,4,5,6,7,8,9,9,10,10,11,11,12,12,       &! Band 2
116 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 3
117 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,14,14,      &! Band 4
118 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 5
119 & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,             &! Band 6
120 & 1,1,2,2,3,4,5,6,7,8,9,10,11,11,12,12,        &! Band 7
121 & 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,             &! Band 8
122 & 1,2,3,4,5,6,7,8,9,9,10,10,11,11,12,12,       &! Band 9
123 & 1,1,2,2,3,3,4,4,5,5,5,5,6,6,6,6,             &! Band 10
124 & 1,2,3,3,4,4,5,5,6,6,7,7,7,8,8,8,             &! Band 11
125 & 1,2,3,4,5,5,6,6,7,7,7,7,8,8,8,8,             &! Band 12
126 & 1,1,1,2,2,2,3,3,3,3,4,4,4,4,4,4,             &! Band 13
127 & 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,             &! Band 14
128 & 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,             &! Band 15
129 & 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2/)             ! Band 16 
130
131IGN140(:) = (/&
132 & 1,1,2,2,2,2,2,2,1,1,                         &! Band 1
133 & 1,1,1,1,1,1,1,1,2,2,2,2,                     &! Band 2
134 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 3
135 & 1,1,1,1,1,1,1,1,1,1,1,1,1,3,                 &! Band 4
136 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 5
137 & 2,2,2,2,2,2,2,2,                             &! Band 6
138 & 2,2,1,1,1,1,1,1,1,1,2,2,                     &! Band 7
139 & 2,2,2,2,2,2,2,2,                             &! Band 8
140 & 1,1,1,1,1,1,1,1,2,2,2,2,                     &! Band 9
141 & 2,2,2,2,4,4,                                 &! Band 10
142 & 1,1,2,2,2,2,3,3,                             &! Band 11
143 & 1,1,1,1,2,2,4,4,                             &! Band 12
144 & 3,3,4,6,                                     &! Band 13
145 & 8,8,                                         &! Band 14
146 & 8,8,                                         &! Band 15
147 & 4,12/)                                         ! Band 16 
148
149IGB140( :) = (/&
150 & 1,1,1,1,1,1,1,1,1,1,                         &! Band 1
151 & 2,2,2,2,2,2,2,2,2,2,2,2,                     &! Band 2
152 & 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,             &! Band 3
153 & 4,4,4,4,4,4,4,4,4,4,4,4,4,4,                 &! Band 4
154 & 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,             &! Band 5
155 & 6,6,6,6,6,6,6,6,                             &! Band 6
156 & 7,7,7,7,7,7,7,7,7,7,7,7,                     &! Band 7
157 & 8,8,8,8,8,8,8,8,                             &! Band 8
158 & 9,9,9,9,9,9,9,9,9,9,9,9,                     &! Band 9
159 & 10,10,10,10,10,10,                           &! Band 10
160 & 11,11,11,11,11,11,11,11,                     &! Band 11
161 & 12,12,12,12,12,12,12,12,                     &! Band 12
162 & 13,13,13,13,                                 &! Band 13
163 & 14,14,                                       &! Band 14
164 & 15,15,                                       &! Band 15
165 & 16,16/)                                       ! Band 16 
166
167
168
169!------------------------------------------------------------------------------
170!-- configuration with 256 g-points
171
172IGC256(:) = (/16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 /)
173
174IGS256(:) = (/ 16,  32,  48,  64,  80,  96, 112, 128, &
175            & 144, 160, 176, 192, 208, 224, 240, 256 /) 
176
177IGM256(:) = (/&
178 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 1
179 & 1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14,      &! Band 2
180 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 3
181 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 4
182 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 5
183 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 6
184 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 7
185 & 1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14,      &! Band 8
186 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 9
187 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 10
188 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 11
189 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 12
190 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 13
191 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 14
192 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,      &! Band 15
193 & 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 /)     ! Band 16
194
195IGN256(:) = (/&
196 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 1
197 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 2
198 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 3
199 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 4
200 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 5
201 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 6
202 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 7
203 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 8
204 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 9
205 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 10
206 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 11
207 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 12
208 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 13
209 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 14
210 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 15
211 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 /)            ! Band 16
212
213IGB256( :) = (/&
214 & 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,             &! Band 1
215 & 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,             &! Band 2
216 & 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,             &! Band 3
217 & 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,             &! Band 4
218 & 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,             &! Band 5
219 & 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,             &! Band 6
220 & 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,             &! Band 7
221 & 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,             &! Band 8
222 & 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,             &! Band 9
223 & 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, &! Band 10
224 & 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, &! Band 11
225 & 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, &! Band 12
226 & 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, &! Band 13
227 & 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, &! Band 14
228 & 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, &! Band 15
229 & 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16/) ! Band 16 
230
231!-------------------------------------------------------------------------------
232!
233WT( :) = (/&
234 & 0.1527534276_JPRB,0.1491729617_JPRB,0.1420961469_JPRB,0.1316886544_JPRB,&
235 & 0.1181945205_JPRB,0.1019300893_JPRB,0.0832767040_JPRB,0.0626720116_JPRB,&
236 & 0.0424925_JPRB   ,0.0046269894_JPRB,0.0038279891_JPRB,0.0030260086_JPRB,&
237 & 0.0022199750_JPRB,0.0014140010_JPRB,0.000533_JPRB    ,0.000075_JPRB    /) 
238
239!-------------------------------------------------------------------------------
240
241IF (JPGPT == 70) THEN
242
243!-- 16
244  NGC(:)=IGC70(:)
245  NGS(:)=IGS70(:)
246
247!-- 16*16=256
248  NGM(:)=IGM70(:)
249
250  NGN(1:70)=IGN70(1:70)
251  NGB(1:70)=IGB70(1:70)
252
253ELSEIF (JPGPT == 140) THEN
254!- 16
255  NGC(:)=IGC140(:)
256  NGS(:)=IGS140(:)
257
258!- 16*16=256
259  NGM(:)=IGM140(:)
260
261  NGN(1:140)=IGN140(1:140)
262  NGB(1:140)=IGB140(1:140)
263
264ELSEIF (JPGPT == 256) THEN
265!- 16
266  NGC(:)=IGC256(:)
267  NGS(:)=IGS256(:)
268
269!- 16*16=256
270  NGM(:)=IGM256(:)
271
272  NGN(1:256)=IGN256(1:256)
273  NGB(1:256)=IGB256(1:256)
274
275ENDIF
276   
277!     -----------------------------------------------------------------
278IF (LHOOK) CALL DR_HOOK('SURRTFTR',1,ZHOOK_HANDLE)
279END SUBROUTINE SURRTFTR
Note: See TracBrowser for help on using the repository browser.