[4773] | 1 | SUBROUTINE 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 | |
---|
| 11 | USE PARKIND1 ,ONLY : JPIM , JPRB |
---|
| 12 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK, JPHOOK |
---|
| 13 | |
---|
| 14 | !USE PARRRTM ,ONLY : JPBAND ,JPG |
---|
| 15 | USE YOERRTFTR ,ONLY : NGC ,NGS ,NGN ,NGB ,NGM , WT |
---|
| 16 | !USE YOERAD ,ONLY : NREDGLW |
---|
| 17 | USE 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 | |
---|
| 26 | IMPLICIT 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 | |
---|
| 31 | INTEGER(KIND=JPIM) :: IGC70(16) , IGC140(16) , IGC256(16) |
---|
| 32 | INTEGER(KIND=JPIM) :: IGS70(16) , IGS140(16) , IGS256(16) |
---|
| 33 | |
---|
| 34 | INTEGER(KIND=JPIM) :: IGM70(256), IGM140(256), IGM256(256) |
---|
| 35 | |
---|
| 36 | INTEGER(KIND=JPIM) :: IGN70(70) , IGN140(140), IGN256(256) |
---|
| 37 | INTEGER(KIND=JPIM) :: IGB70(70) , IGB140(140), IGB256(256) |
---|
| 38 | |
---|
| 39 | REAL(KIND=JPHOOK) :: ZHOOK_HANDLE |
---|
| 40 | IF (LHOOK) CALL DR_HOOK('SURRTFTR',0,ZHOOK_HANDLE) |
---|
| 41 | |
---|
| 42 | !------------------------------------------------------------------------------- |
---|
| 43 | !-- configuration for EPS with 70 g-points |
---|
| 44 | |
---|
| 45 | IGC70( :) = (/4, 7, 8, 7, 8, 4, 6, 4, 6, 3, 4, 4, 2, 1, 1, 1 /) |
---|
| 46 | |
---|
| 47 | IGS70(:) = (/ 4, 11, 19, 26, 34, 38, 44, 48, & |
---|
| 48 | & 54, 57, 61, 65, 67, 68, 69, 70 /) |
---|
| 49 | |
---|
| 50 | IGM70(:) = (/& |
---|
| 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 | |
---|
| 68 | IGN70(:) = (/& |
---|
| 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 | |
---|
| 86 | IGB70(:) = (/& |
---|
| 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 | |
---|
| 108 | IGC140(:) = (/10, 12, 16, 14, 16, 8, 12, 8, 12, 6, 8, 8, 4, 2, 2, 2 /) |
---|
| 109 | |
---|
| 110 | IGS140(:) = (/ 10, 22, 38, 52, 68, 76, 88, 96, & |
---|
| 111 | & 108, 114, 122, 130, 134, 136, 138, 140 /) |
---|
| 112 | |
---|
| 113 | IGM140(:) = (/& |
---|
| 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 | |
---|
| 131 | IGN140(:) = (/& |
---|
| 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 | |
---|
| 149 | IGB140( :) = (/& |
---|
| 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 | |
---|
| 172 | IGC256(:) = (/16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 /) |
---|
| 173 | |
---|
| 174 | IGS256(:) = (/ 16, 32, 48, 64, 80, 96, 112, 128, & |
---|
| 175 | & 144, 160, 176, 192, 208, 224, 240, 256 /) |
---|
| 176 | |
---|
| 177 | IGM256(:) = (/& |
---|
| 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 | |
---|
| 195 | IGN256(:) = (/& |
---|
| 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 | |
---|
| 213 | IGB256( :) = (/& |
---|
| 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 | ! |
---|
| 233 | WT( :) = (/& |
---|
| 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 | |
---|
| 241 | IF (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 | |
---|
| 253 | ELSEIF (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 | |
---|
| 264 | ELSEIF (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 | |
---|
| 275 | ENDIF |
---|
| 276 | |
---|
| 277 | ! ----------------------------------------------------------------- |
---|
| 278 | IF (LHOOK) CALL DR_HOOK('SURRTFTR',1,ZHOOK_HANDLE) |
---|
| 279 | END SUBROUTINE SURRTFTR |
---|