[3880] | 1 | SUBROUTINE RRTM_KGB12 |
---|
| 2 | |
---|
| 3 | ! Originally by Eli J. Mlawer, Atmospheric & Environmental Research. |
---|
| 4 | ! BAND 12: 1800-2080 cm-1 (low - H2O,CO2; high - nothing) |
---|
| 5 | ! Reformatted for F90 by JJMorcrette, ECMWF |
---|
| 6 | ! R. Elkhatib 12-10-2005 Split for faster and more robust compilation. |
---|
| 7 | ! G.Mozdzynski March 2011 read constants from files |
---|
| 8 | ! T. Wilhelmsson and K. Yessad (Oct 2013) Geometry and setup refactoring. |
---|
| 9 | ! ------------------------------------------------------------------ |
---|
| 10 | |
---|
| 11 | USE PARKIND1 ,ONLY : JPRB |
---|
| 12 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK |
---|
| 13 | USE YOMLUN ,ONLY : NULRAD |
---|
| 14 | USE YOMMP0 , ONLY : NPROC, MYPROC |
---|
| 15 | USE MPL_MODULE,ONLY : MPL_BROADCAST |
---|
| 16 | USE YOMTAG ,ONLY : MTAGRAD |
---|
| 17 | |
---|
| 18 | USE YOERRTO12, ONLY : KAO ,KAO_D,SELFREFO,FORREFO ,FRACREFAO |
---|
| 19 | |
---|
| 20 | ! ------------------------------------------------------------------ |
---|
| 21 | |
---|
| 22 | IMPLICIT NONE |
---|
| 23 | REAL(KIND=JPRB) :: ZHOOK_HANDLE |
---|
| 24 | |
---|
| 25 | |
---|
| 26 | #include "abor1.intfb.h" |
---|
| 27 | |
---|
| 28 | IF (LHOOK) CALL DR_HOOK('RRTM_KGB12',0,ZHOOK_HANDLE) |
---|
| 29 | |
---|
| 30 | IF( MYPROC==1 )THEN |
---|
| 31 | READ(NULRAD,ERR=1001) KAO_D |
---|
| 32 | KAO = REAL(KAO_D,JPRB) |
---|
| 33 | ENDIF |
---|
| 34 | IF( NPROC>1 )THEN |
---|
| 35 | CALL MPL_BROADCAST (KAO,MTAGRAD,1,CDSTRING='RRTM_KGB12:') |
---|
| 36 | ENDIF |
---|
| 37 | |
---|
| 38 | ! Planck fraction mapping level : P = 174.1640 mbar, T= 215.78 K |
---|
| 39 | FRACREFAO(:, 1) = (/ & |
---|
| 40 | & 1.3984E-01_JPRB,1.6809E-01_JPRB,1.8072E-01_JPRB,1.5400E-01_JPRB,1.2613E-01_JPRB,9.6959E-02_JPRB, & |
---|
| 41 | & 5.9713E-02_JPRB,3.8631E-02_JPRB,2.6937E-02_JPRB,3.1711E-03_JPRB,2.3458E-03_JPRB,1.4653E-03_JPRB, & |
---|
| 42 | & 1.0567E-03_JPRB,6.6504E-04_JPRB,2.4957E-04_JPRB,3.5172E-05_JPRB/) |
---|
| 43 | FRACREFAO(:, 2) = (/ & |
---|
| 44 | & 1.2745E-01_JPRB,1.6107E-01_JPRB,1.6568E-01_JPRB,1.5436E-01_JPRB,1.3183E-01_JPRB,1.0166E-01_JPRB, & |
---|
| 45 | & 6.4506E-02_JPRB,4.7756E-02_JPRB,3.4472E-02_JPRB,3.7189E-03_JPRB,2.9349E-03_JPRB,2.1469E-03_JPRB, & |
---|
| 46 | & 1.3746E-03_JPRB,7.1691E-04_JPRB,2.8057E-04_JPRB,5.6242E-05_JPRB/) |
---|
| 47 | FRACREFAO(:, 3) = (/ & |
---|
| 48 | & 1.2181E-01_JPRB,1.5404E-01_JPRB,1.6540E-01_JPRB,1.5255E-01_JPRB,1.3736E-01_JPRB,9.8856E-02_JPRB, & |
---|
| 49 | & 6.8927E-02_JPRB,5.1385E-02_JPRB,3.7046E-02_JPRB,4.0302E-03_JPRB,3.0949E-03_JPRB,2.3772E-03_JPRB, & |
---|
| 50 | & 1.6538E-03_JPRB,8.9641E-04_JPRB,4.6991E-04_JPRB,1.1251E-04_JPRB/) |
---|
| 51 | FRACREFAO(:, 4) = (/ & |
---|
| 52 | & 1.1794E-01_JPRB,1.4864E-01_JPRB,1.6316E-01_JPRB,1.5341E-01_JPRB,1.3986E-01_JPRB,9.6656E-02_JPRB, & |
---|
| 53 | & 7.2478E-02_JPRB,5.5061E-02_JPRB,3.8886E-02_JPRB,4.3398E-03_JPRB,3.3576E-03_JPRB,2.4891E-03_JPRB, & |
---|
| 54 | & 1.7674E-03_JPRB,1.0764E-03_JPRB,7.7689E-04_JPRB,1.1251E-04_JPRB/) |
---|
| 55 | FRACREFAO(:, 5) = (/ & |
---|
| 56 | & 1.1635E-01_JPRB,1.4342E-01_JPRB,1.5924E-01_JPRB,1.5670E-01_JPRB,1.3740E-01_JPRB,9.7087E-02_JPRB, & |
---|
| 57 | & 7.6250E-02_JPRB,5.7802E-02_JPRB,4.0808E-02_JPRB,4.4113E-03_JPRB,3.6035E-03_JPRB,2.6269E-03_JPRB, & |
---|
| 58 | & 1.7586E-03_JPRB,1.6498E-03_JPRB,7.7689E-04_JPRB,1.1251E-04_JPRB/) |
---|
| 59 | FRACREFAO(:, 6) = (/ & |
---|
| 60 | & 1.1497E-01_JPRB,1.3751E-01_JPRB,1.5587E-01_JPRB,1.5904E-01_JPRB,1.3140E-01_JPRB,1.0159E-01_JPRB, & |
---|
| 61 | & 7.9729E-02_JPRB,6.1475E-02_JPRB,4.2382E-02_JPRB,4.5291E-03_JPRB,3.8161E-03_JPRB,2.7683E-03_JPRB, & |
---|
| 62 | & 1.9899E-03_JPRB,2.0395E-03_JPRB,7.7720E-04_JPRB,1.1251E-04_JPRB/) |
---|
| 63 | FRACREFAO(:, 7) = (/ & |
---|
| 64 | & 1.1331E-01_JPRB,1.3015E-01_JPRB,1.5574E-01_JPRB,1.5489E-01_JPRB,1.2697E-01_JPRB,1.0746E-01_JPRB, & |
---|
| 65 | & 8.4777E-02_JPRB,6.5145E-02_JPRB,4.4293E-02_JPRB,4.7426E-03_JPRB,3.8383E-03_JPRB,2.9065E-03_JPRB, & |
---|
| 66 | & 2.8430E-03_JPRB,2.0401E-03_JPRB,7.7689E-04_JPRB,1.1251E-04_JPRB/) |
---|
| 67 | FRACREFAO(:, 8) = (/ & |
---|
| 68 | & 1.0993E-01_JPRB,1.2320E-01_JPRB,1.4893E-01_JPRB,1.4573E-01_JPRB,1.3174E-01_JPRB,1.1149E-01_JPRB, & |
---|
| 69 | & 9.3326E-02_JPRB,6.9942E-02_JPRB,4.6762E-02_JPRB,4.9309E-03_JPRB,3.8583E-03_JPRB,4.1889E-03_JPRB, & |
---|
| 70 | & 3.0415E-03_JPRB,2.0406E-03_JPRB,7.7720E-04_JPRB,1.1251E-04_JPRB/) |
---|
| 71 | FRACREFAO(:, 9) = (/ & |
---|
| 72 | & 1.2028E-01_JPRB,1.2091E-01_JPRB,1.3098E-01_JPRB,1.3442E-01_JPRB,1.3574E-01_JPRB,1.1739E-01_JPRB, & |
---|
| 73 | & 9.5343E-02_JPRB,7.0224E-02_JPRB,5.3456E-02_JPRB,6.0206E-03_JPRB,5.0758E-03_JPRB,4.1906E-03_JPRB, & |
---|
| 74 | & 3.0431E-03_JPRB,2.0400E-03_JPRB,7.7689E-04_JPRB,1.1251E-04_JPRB/) |
---|
| 75 | |
---|
| 76 | |
---|
| 77 | ! ------------------------------------------------------------------ |
---|
| 78 | |
---|
| 79 | ! The array KAO contains absorption coefs at the 16 chosen g-values |
---|
| 80 | ! for a range of pressure levels> ~100mb, temperatures, and binary |
---|
| 81 | ! species parameters (see taumol.f for definition). The first |
---|
| 82 | ! index in the array, JS, runs from 1 to 9, and corresponds to |
---|
| 83 | ! different values of the binary species parameter. For instance, |
---|
| 84 | ! JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, |
---|
| 85 | ! JS = 3 corresponds to the parameter value 2/8, etc. The second index |
---|
| 86 | ! in the array, JT, which runs from 1 to 5, corresponds to different |
---|
| 87 | ! temperatures. More specifically, JT = 3 means that the data are for |
---|
| 88 | ! the reference temperature TREF for this pressure level, JT = 2 refers |
---|
| 89 | ! to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5 |
---|
| 90 | ! is for TREF+30. The third index, JP, runs from 1 to 13 and refers |
---|
| 91 | ! to the JPth reference pressure level (see taumol.f for these levels |
---|
| 92 | ! in mb). The fourth index, IG, goes from 1 to 16, and indicates |
---|
| 93 | ! which g-interval the absorption coefficients are for. |
---|
| 94 | |
---|
| 95 | |
---|
| 96 | ! The array FORREFO contains the coefficient of the water vapor |
---|
| 97 | ! foreign-continuum (including the energy term). The first |
---|
| 98 | ! index refers to reference temperature (296,260,224,260) and |
---|
| 99 | ! pressure (970,475,219,3 mbar) levels. The second index |
---|
| 100 | ! runs over the g-channel (1 to 16). |
---|
| 101 | |
---|
| 102 | FORREFO(1,:) = (/ & |
---|
| 103 | &1.4739E-04_JPRB,3.1686E-04_JPRB,8.5973E-04_JPRB,1.9039E-03_JPRB,3.1820E-03_JPRB,3.6596E-03_JPRB, & |
---|
| 104 | &3.8724E-03_JPRB,3.6785E-03_JPRB,3.7141E-03_JPRB,3.7646E-03_JPRB,4.2955E-03_JPRB,4.6343E-03_JPRB, & |
---|
| 105 | &5.0612E-03_JPRB,4.0227E-03_JPRB,4.2966E-03_JPRB,4.6622E-03_JPRB/) |
---|
| 106 | FORREFO(2,:) = (/ & |
---|
| 107 | &1.9397E-04_JPRB,3.6322E-04_JPRB,8.9797E-04_JPRB,2.1001E-03_JPRB,3.0307E-03_JPRB,3.5563E-03_JPRB, & |
---|
| 108 | &3.8498E-03_JPRB,3.5741E-03_JPRB,3.5914E-03_JPRB,3.7658E-03_JPRB,3.8895E-03_JPRB,4.4072E-03_JPRB, & |
---|
| 109 | &4.7112E-03_JPRB,4.2230E-03_JPRB,4.2666E-03_JPRB,4.6634E-03_JPRB/) |
---|
| 110 | FORREFO(3,:) = (/ & |
---|
| 111 | &3.1506E-04_JPRB,7.3687E-04_JPRB,1.9678E-03_JPRB,2.5531E-03_JPRB,2.8345E-03_JPRB,2.7809E-03_JPRB, & |
---|
| 112 | &2.9124E-03_JPRB,2.7125E-03_JPRB,2.6644E-03_JPRB,2.4907E-03_JPRB,2.7032E-03_JPRB,4.0967E-03_JPRB, & |
---|
| 113 | &4.1971E-03_JPRB,4.4507E-03_JPRB,4.2293E-03_JPRB,4.6633E-03_JPRB/) |
---|
| 114 | FORREFO(4,:) = (/ & |
---|
| 115 | &8.8196E-04_JPRB,2.1125E-03_JPRB,2.8042E-03_JPRB,2.8891E-03_JPRB,2.4362E-03_JPRB,1.8733E-03_JPRB, & |
---|
| 116 | &1.4078E-03_JPRB,1.1987E-03_JPRB,1.2808E-03_JPRB,8.9050E-04_JPRB,9.4375E-04_JPRB,7.8351E-04_JPRB, & |
---|
| 117 | &1.0756E-03_JPRB,1.6586E-03_JPRB,1.7511E-03_JPRB,4.7803E-03_JPRB/) |
---|
| 118 | |
---|
| 119 | |
---|
| 120 | ! The array SELFREFO contains the coefficient of the water vapor |
---|
| 121 | ! self-continuum (including the energy term). The first index |
---|
| 122 | ! refers to temperature in 7.2 degree increments. For instance, |
---|
| 123 | ! JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, |
---|
| 124 | ! etc. The second index runs over the g-channel (1 to 16). |
---|
| 125 | |
---|
| 126 | SELFREFO(:, 1) = (/ & |
---|
| 127 | & 2.37879E-02_JPRB, 2.10719E-02_JPRB, 1.86660E-02_JPRB, 1.65348E-02_JPRB, 1.46469E-02_JPRB, & |
---|
| 128 | & 1.29746E-02_JPRB, 1.14932E-02_JPRB, 1.01810E-02_JPRB, 9.01858E-03_JPRB, 7.98888E-03_JPRB/) |
---|
| 129 | SELFREFO(:, 2) = (/ & |
---|
| 130 | & 3.10625E-02_JPRB, 2.82664E-02_JPRB, 2.57220E-02_JPRB, 2.34066E-02_JPRB, 2.12997E-02_JPRB, & |
---|
| 131 | & 1.93824E-02_JPRB, 1.76377E-02_JPRB, 1.60500E-02_JPRB, 1.46053E-02_JPRB, 1.32906E-02_JPRB/) |
---|
| 132 | SELFREFO(:, 3) = (/ & |
---|
| 133 | & 5.19103E-02_JPRB, 4.80004E-02_JPRB, 4.43850E-02_JPRB, 4.10419E-02_JPRB, 3.79506E-02_JPRB, & |
---|
| 134 | & 3.50922E-02_JPRB, 3.24491E-02_JPRB, 3.00050E-02_JPRB, 2.77450E-02_JPRB, 2.56553E-02_JPRB/) |
---|
| 135 | SELFREFO(:, 4) = (/ & |
---|
| 136 | & 9.12444E-02_JPRB, 8.38675E-02_JPRB, 7.70870E-02_JPRB, 7.08547E-02_JPRB, 6.51263E-02_JPRB, & |
---|
| 137 | & 5.98610E-02_JPRB, 5.50214E-02_JPRB, 5.05730E-02_JPRB, 4.64843E-02_JPRB, 4.27262E-02_JPRB/) |
---|
| 138 | SELFREFO(:, 5) = (/ & |
---|
| 139 | & 1.11323E-01_JPRB, 1.04217E-01_JPRB, 9.75650E-02_JPRB, 9.13376E-02_JPRB, 8.55076E-02_JPRB, & |
---|
| 140 | & 8.00498E-02_JPRB, 7.49403E-02_JPRB, 7.01570E-02_JPRB, 6.56790E-02_JPRB, 6.14868E-02_JPRB/) |
---|
| 141 | SELFREFO(:, 6) = (/ & |
---|
| 142 | & 1.25301E-01_JPRB, 1.16877E-01_JPRB, 1.09020E-01_JPRB, 1.01691E-01_JPRB, 9.48543E-02_JPRB, & |
---|
| 143 | & 8.84774E-02_JPRB, 8.25293E-02_JPRB, 7.69810E-02_JPRB, 7.18057E-02_JPRB, 6.69784E-02_JPRB/) |
---|
| 144 | SELFREFO(:, 7) = (/ & |
---|
| 145 | & 1.34063E-01_JPRB, 1.24662E-01_JPRB, 1.15920E-01_JPRB, 1.07791E-01_JPRB, 1.00232E-01_JPRB, & |
---|
| 146 | & 9.32035E-02_JPRB, 8.66676E-02_JPRB, 8.05900E-02_JPRB, 7.49386E-02_JPRB, 6.96836E-02_JPRB/) |
---|
| 147 | SELFREFO(:, 8) = (/ & |
---|
| 148 | & 1.26997E-01_JPRB, 1.18306E-01_JPRB, 1.10210E-01_JPRB, 1.02668E-01_JPRB, 9.56417E-02_JPRB, & |
---|
| 149 | & 8.90964E-02_JPRB, 8.29991E-02_JPRB, 7.73190E-02_JPRB, 7.20276E-02_JPRB, 6.70984E-02_JPRB/) |
---|
| 150 | SELFREFO(:, 9) = (/ & |
---|
| 151 | & 1.28823E-01_JPRB, 1.20235E-01_JPRB, 1.12220E-01_JPRB, 1.04739E-01_JPRB, 9.77569E-02_JPRB, & |
---|
| 152 | & 9.12402E-02_JPRB, 8.51579E-02_JPRB, 7.94810E-02_JPRB, 7.41826E-02_JPRB, 6.92374E-02_JPRB/) |
---|
| 153 | SELFREFO(:,10) = (/ & |
---|
| 154 | & 1.35802E-01_JPRB, 1.25981E-01_JPRB, 1.16870E-01_JPRB, 1.08418E-01_JPRB, 1.00577E-01_JPRB, & |
---|
| 155 | & 9.33034E-02_JPRB, 8.65557E-02_JPRB, 8.02960E-02_JPRB, 7.44890E-02_JPRB, 6.91020E-02_JPRB/) |
---|
| 156 | SELFREFO(:,11) = (/ & |
---|
| 157 | & 1.35475E-01_JPRB, 1.27572E-01_JPRB, 1.20130E-01_JPRB, 1.13122E-01_JPRB, 1.06523E-01_JPRB, & |
---|
| 158 | & 1.00309E-01_JPRB, 9.44573E-02_JPRB, 8.89470E-02_JPRB, 8.37582E-02_JPRB, 7.88721E-02_JPRB/) |
---|
| 159 | SELFREFO(:,12) = (/ & |
---|
| 160 | & 1.51195E-01_JPRB, 1.41159E-01_JPRB, 1.31790E-01_JPRB, 1.23043E-01_JPRB, 1.14876E-01_JPRB, & |
---|
| 161 | & 1.07251E-01_JPRB, 1.00132E-01_JPRB, 9.34860E-02_JPRB, 8.72809E-02_JPRB, 8.14877E-02_JPRB/) |
---|
| 162 | SELFREFO(:,13) = (/ & |
---|
| 163 | & 1.57538E-01_JPRB, 1.47974E-01_JPRB, 1.38990E-01_JPRB, 1.30552E-01_JPRB, 1.22626E-01_JPRB, & |
---|
| 164 | & 1.15181E-01_JPRB, 1.08188E-01_JPRB, 1.01620E-01_JPRB, 9.54505E-02_JPRB, 8.96556E-02_JPRB/) |
---|
| 165 | SELFREFO(:,14) = (/ & |
---|
| 166 | & 1.53567E-01_JPRB, 1.41564E-01_JPRB, 1.30500E-01_JPRB, 1.20300E-01_JPRB, 1.10898E-01_JPRB, & |
---|
| 167 | & 1.02231E-01_JPRB, 9.42406E-02_JPRB, 8.68750E-02_JPRB, 8.00851E-02_JPRB, 7.38259E-02_JPRB/) |
---|
| 168 | SELFREFO(:,15) = (/ & |
---|
| 169 | & 1.53687E-01_JPRB, 1.42981E-01_JPRB, 1.33020E-01_JPRB, 1.23753E-01_JPRB, 1.15132E-01_JPRB, & |
---|
| 170 | & 1.07112E-01_JPRB, 9.96500E-02_JPRB, 9.27080E-02_JPRB, 8.62496E-02_JPRB, 8.02412E-02_JPRB/) |
---|
| 171 | SELFREFO(:,16) = (/ & |
---|
| 172 | & 1.65129E-01_JPRB, 1.53285E-01_JPRB, 1.42290E-01_JPRB, 1.32084E-01_JPRB, 1.22610E-01_JPRB, & |
---|
| 173 | & 1.13815E-01_JPRB, 1.05651E-01_JPRB, 9.80730E-02_JPRB, 9.10384E-02_JPRB, 8.45083E-02_JPRB/) |
---|
| 174 | |
---|
| 175 | IF (LHOOK) CALL DR_HOOK('RRTM_KGB12',1,ZHOOK_HANDLE) |
---|
| 176 | RETURN |
---|
| 177 | |
---|
| 178 | 1001 CONTINUE |
---|
| 179 | CALL ABOR1("RRTM_KGB12:ERROR READING FILE RADRRTM") |
---|
| 180 | |
---|
| 181 | END SUBROUTINE RRTM_KGB12 |
---|