LCOV - code coverage report
Current view: top level - chemistry/pp_waccm_ma_noaero - mo_setrxt.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 322 322 100.0 %
Date: 2025-03-14 01:33:33 Functions: 2 2 100.0 %

          Line data    Source code
       1             : 
       2             :       module mo_setrxt
       3             : 
       4             :       use shr_kind_mod, only : r8 => shr_kind_r8
       5             : 
       6             :       private
       7             :       public :: setrxt
       8             :       public :: setrxt_hrates
       9             : 
      10             :       contains
      11             : 
      12       72960 :       subroutine setrxt( rate, temp, m, ncol )
      13             :  
      14             :       use ppgrid, only : pcols, pver
      15             : 
      16             : 
      17             :       use chem_mods, only : rxntot
      18             :       use mo_jpl,    only : jpl
      19             : 
      20             :       implicit none
      21             : 
      22             : !-------------------------------------------------------
      23             : !       ... dummy arguments
      24             : !-------------------------------------------------------
      25             :       integer, intent(in) :: ncol
      26             :       real(r8), intent(in)    :: temp(pcols,pver)
      27             :       real(r8), intent(in)    :: m(ncol*pver)
      28             :       real(r8), intent(inout) :: rate(ncol*pver,max(1,rxntot))
      29             : 
      30             : !-------------------------------------------------------
      31             : !       ... local variables
      32             : !-------------------------------------------------------
      33             :       integer   ::  n
      34             :       integer   ::  offset
      35      145920 :       real(r8)  :: itemp(ncol*pver)
      36      145920 :       real(r8)  :: exp_fac(ncol*pver)
      37      145920 :       real(r8)  :: ko(ncol*pver)
      38      145920 :       real(r8)  :: kinf(ncol*pver)
      39             : 
      40    73616640 :       rate(:,92) = 0.000258_r8
      41    73616640 :       rate(:,93) = 0.085_r8
      42    73616640 :       rate(:,94) = 1.2e-10_r8
      43    73616640 :       rate(:,99) = 1.2e-10_r8
      44    73616640 :       rate(:,100) = 1e-20_r8
      45    73616640 :       rate(:,101) = 1.3e-16_r8
      46    73616640 :       rate(:,103) = 4.2e-13_r8
      47    73616640 :       rate(:,105) = 8e-14_r8
      48    73616640 :       rate(:,106) = 3.9e-17_r8
      49    73616640 :       rate(:,113) = 6.9e-12_r8
      50    73616640 :       rate(:,114) = 7.2e-11_r8
      51    73616640 :       rate(:,115) = 1.6e-12_r8
      52    73616640 :       rate(:,121) = 1.8e-12_r8
      53    73616640 :       rate(:,125) = 1.8e-12_r8
      54    73616640 :       rate(:,129) = 7e-13_r8
      55    73616640 :       rate(:,130) = 5e-12_r8
      56    73616640 :       rate(:,139) = 3.5e-12_r8
      57    73616640 :       rate(:,141) = 1e-11_r8
      58    73616640 :       rate(:,142) = 2.2e-11_r8
      59    73616640 :       rate(:,143) = 5e-11_r8
      60    73616640 :       rate(:,178) = 1.7e-13_r8
      61    73616640 :       rate(:,180) = 2.607e-10_r8
      62    73616640 :       rate(:,181) = 9.75e-11_r8
      63    73616640 :       rate(:,182) = 2.07e-10_r8
      64    73616640 :       rate(:,183) = 2.088e-10_r8
      65    73616640 :       rate(:,184) = 1.17e-10_r8
      66    73616640 :       rate(:,185) = 4.644e-11_r8
      67    73616640 :       rate(:,186) = 1.204e-10_r8
      68    73616640 :       rate(:,187) = 9.9e-11_r8
      69    73616640 :       rate(:,188) = 3.3e-12_r8
      70    73616640 :       rate(:,207) = 4.5e-11_r8
      71    73616640 :       rate(:,208) = 4.62e-10_r8
      72    73616640 :       rate(:,209) = 1.2e-10_r8
      73    73616640 :       rate(:,210) = 9e-11_r8
      74    73616640 :       rate(:,211) = 3e-11_r8
      75    73616640 :       rate(:,216) = 2.14e-11_r8
      76    73616640 :       rate(:,217) = 1.9e-10_r8
      77    73616640 :       rate(:,230) = 2.57e-10_r8
      78    73616640 :       rate(:,231) = 1.8e-10_r8
      79    73616640 :       rate(:,232) = 1.794e-10_r8
      80    73616640 :       rate(:,233) = 1.3e-10_r8
      81    73616640 :       rate(:,234) = 7.65e-11_r8
      82    73616640 :       rate(:,243) = 1.31e-10_r8
      83    73616640 :       rate(:,244) = 3.5e-11_r8
      84    73616640 :       rate(:,245) = 9e-12_r8
      85    73616640 :       rate(:,251) = 2.3e-12_r8
      86    73616640 :       rate(:,252) = 1.2e-11_r8
      87    73616640 :       rate(:,253) = 5.7e-11_r8
      88    73616640 :       rate(:,254) = 2.8e-11_r8
      89    73616640 :       rate(:,255) = 6.6e-11_r8
      90    73616640 :       rate(:,256) = 1.4e-11_r8
      91    73616640 :       rate(:,259) = 1.9e-12_r8
      92    73616640 :       rate(:,285) = 0.047_r8
      93    73616640 :       rate(:,286) = 7.7e-05_r8
      94    73616640 :       rate(:,287) = 0.171_r8
      95    73616640 :       rate(:,291) = 6e-11_r8
      96    73616640 :       rate(:,294) = 1e-12_r8
      97    73616640 :       rate(:,295) = 4e-10_r8
      98    73616640 :       rate(:,296) = 2e-10_r8
      99    73616640 :       rate(:,297) = 1e-10_r8
     100    73616640 :       rate(:,298) = 5e-16_r8
     101    73616640 :       rate(:,299) = 4.4e-10_r8
     102    73616640 :       rate(:,300) = 9e-10_r8
     103    73616640 :       rate(:,302) = 1.3e-10_r8
     104    73616640 :       rate(:,305) = 8e-10_r8
     105    73616640 :       rate(:,306) = 5e-12_r8
     106    73616640 :       rate(:,307) = 7e-10_r8
     107    73616640 :       rate(:,310) = 4.8e-10_r8
     108    73616640 :       rate(:,311) = 1e-10_r8
     109    73616640 :       rate(:,312) = 4e-10_r8
     110             :  
     111     5180160 :       do n = 1,pver
     112     5107200 :         offset = (n-1)*ncol
     113    78723840 :         itemp(offset+1:offset+ncol) = 1._r8 / temp(:ncol,n)
     114             :       end do
     115             : 
     116    73616640 :       rate(:,95) = 1.63e-10_r8 * exp( 60._r8 * itemp(:) )
     117    73616640 :       rate(:,96) = 2.15e-11_r8 * exp( 110._r8 * itemp(:) )
     118    73616640 :       exp_fac(:) = exp( 55._r8 * itemp(:) )
     119    73616640 :       rate(:,97) = 2.64e-11_r8 * exp_fac(:)
     120    73616640 :       rate(:,98) = 6.6e-12_r8 * exp_fac(:)
     121    73616640 :       rate(:,102) = 3.6e-18_r8 * exp( -220._r8 * itemp(:) )
     122    73616640 :       rate(:,104) = 1.8e-15_r8 * exp( 45._r8 * itemp(:) )
     123    73616640 :       rate(:,107) = 3.5e-11_r8 * exp( -135._r8 * itemp(:) )
     124    73616640 :       rate(:,108) = 8e-12_r8 * exp( -2060._r8 * itemp(:) )
     125    73616640 :       rate(:,111) = 1.6e-11_r8 * exp( -4570._r8 * itemp(:) )
     126    73616640 :       rate(:,112) = 1.4e-12_r8 * exp( -2000._r8 * itemp(:) )
     127    73616640 :       exp_fac(:) = exp( 200._r8 * itemp(:) )
     128    73616640 :       rate(:,117) = 3e-11_r8 * exp_fac(:)
     129    73616640 :       rate(:,205) = 5.5e-12_r8 * exp_fac(:)
     130    73616640 :       rate(:,240) = 3.8e-12_r8 * exp_fac(:)
     131    73616640 :       rate(:,118) = 1e-14_r8 * exp( -490._r8 * itemp(:) )
     132    73616640 :       rate(:,119) = 1.4e-10_r8 * exp( -470._r8 * itemp(:) )
     133    73616640 :       rate(:,120) = 2.8e-12_r8 * exp( -1800._r8 * itemp(:) )
     134    73616640 :       exp_fac(:) = exp( 250._r8 * itemp(:) )
     135    73616640 :       rate(:,122) = 4.8e-11_r8 * exp_fac(:)
     136    73616640 :       rate(:,203) = 1.7e-11_r8 * exp_fac(:)
     137    73616640 :       rate(:,123) = 1.8e-11_r8 * exp( 180._r8 * itemp(:) )
     138    73616640 :       rate(:,124) = 1.7e-12_r8 * exp( -940._r8 * itemp(:) )
     139    73616640 :       rate(:,128) = 1.3e-12_r8 * exp( 380._r8 * itemp(:) )
     140    73616640 :       rate(:,131) = 2.1e-11_r8 * exp( 100._r8 * itemp(:) )
     141    73616640 :       exp_fac(:) = exp( 220._r8 * itemp(:) )
     142    73616640 :       rate(:,132) = 2.9e-12_r8 * exp_fac(:)
     143    73616640 :       rate(:,133) = 1.45e-12_r8 * exp_fac(:)
     144    73616640 :       rate(:,134) = 1.45e-12_r8 * exp_fac(:)
     145    73616640 :       rate(:,135) = 1.5e-11_r8 * exp( -3600._r8 * itemp(:) )
     146    73616640 :       rate(:,136) = 5.1e-12_r8 * exp( 210._r8 * itemp(:) )
     147    73616640 :       exp_fac(:) = exp( -2450._r8 * itemp(:) )
     148    73616640 :       rate(:,137) = 1.2e-13_r8 * exp_fac(:)
     149    73616640 :       rate(:,163) = 3e-11_r8 * exp_fac(:)
     150    73616640 :       rate(:,140) = 1.5e-11_r8 * exp( 170._r8 * itemp(:) )
     151    73616640 :       exp_fac(:) = exp( 270._r8 * itemp(:) )
     152    73616640 :       rate(:,144) = 3.3e-12_r8 * exp_fac(:)
     153    73616640 :       rate(:,159) = 1.4e-11_r8 * exp_fac(:)
     154    73616640 :       rate(:,173) = 7.4e-12_r8 * exp_fac(:)
     155    73616640 :       exp_fac(:) = exp( -1500._r8 * itemp(:) )
     156    73616640 :       rate(:,145) = 3e-12_r8 * exp_fac(:)
     157    73616640 :       rate(:,204) = 5.8e-12_r8 * exp_fac(:)
     158    73616640 :       exp_fac(:) = exp( 20._r8 * itemp(:) )
     159    73616640 :       rate(:,147) = 7.26e-11_r8 * exp_fac(:)
     160    73616640 :       rate(:,148) = 4.64e-11_r8 * exp_fac(:)
     161    73616640 :       rate(:,155) = 8.1e-11_r8 * exp( -30._r8 * itemp(:) )
     162    73616640 :       rate(:,156) = 7.1e-12_r8 * exp( -1270._r8 * itemp(:) )
     163    73616640 :       rate(:,157) = 3.05e-11_r8 * exp( -2270._r8 * itemp(:) )
     164    73616640 :       rate(:,158) = 1.1e-11_r8 * exp( -980._r8 * itemp(:) )
     165    73616640 :       rate(:,160) = 3.6e-11_r8 * exp( -375._r8 * itemp(:) )
     166    73616640 :       rate(:,161) = 2.3e-11_r8 * exp( -200._r8 * itemp(:) )
     167    73616640 :       rate(:,162) = 3.3e-12_r8 * exp( -115._r8 * itemp(:) )
     168    73616640 :       rate(:,164) = 1e-12_r8 * exp( -1590._r8 * itemp(:) )
     169    73616640 :       rate(:,165) = 3.5e-13_r8 * exp( -1370._r8 * itemp(:) )
     170    73616640 :       exp_fac(:) = exp( 290._r8 * itemp(:) )
     171    73616640 :       rate(:,166) = 2.6e-12_r8 * exp_fac(:)
     172    73616640 :       rate(:,167) = 6.4e-12_r8 * exp_fac(:)
     173    73616640 :       rate(:,197) = 4.1e-13_r8 * exp_fac(:)
     174    73616640 :       rate(:,168) = 6.5e-12_r8 * exp( 135._r8 * itemp(:) )
     175    73616640 :       exp_fac(:) = exp( -840._r8 * itemp(:) )
     176    73616640 :       rate(:,170) = 3.6e-12_r8 * exp_fac(:)
     177    73616640 :       rate(:,219) = 2e-12_r8 * exp_fac(:)
     178    73616640 :       rate(:,171) = 1.2e-12_r8 * exp( -330._r8 * itemp(:) )
     179    73616640 :       rate(:,172) = 2.8e-11_r8 * exp( 85._r8 * itemp(:) )
     180    73616640 :       exp_fac(:) = exp( 230._r8 * itemp(:) )
     181    73616640 :       rate(:,174) = 6e-13_r8 * exp_fac(:)
     182    73616640 :       rate(:,194) = 1.5e-12_r8 * exp_fac(:)
     183    73616640 :       rate(:,202) = 1.9e-11_r8 * exp_fac(:)
     184    73616640 :       rate(:,175) = 1e-11_r8 * exp( -3300._r8 * itemp(:) )
     185    73616640 :       rate(:,176) = 1.8e-12_r8 * exp( -250._r8 * itemp(:) )
     186    73616640 :       rate(:,177) = 3.4e-12_r8 * exp( -130._r8 * itemp(:) )
     187    73616640 :       exp_fac(:) = exp( -500._r8 * itemp(:) )
     188    73616640 :       rate(:,179) = 3e-12_r8 * exp_fac(:)
     189    73616640 :       rate(:,213) = 1.4e-10_r8 * exp_fac(:)
     190    73616640 :       exp_fac(:) = exp( -800._r8 * itemp(:) )
     191    73616640 :       rate(:,191) = 1.7e-11_r8 * exp_fac(:)
     192    73616640 :       rate(:,218) = 6.3e-12_r8 * exp_fac(:)
     193    73616640 :       rate(:,192) = 4.8e-12_r8 * exp( -310._r8 * itemp(:) )
     194    73616640 :       rate(:,193) = 1.6e-11_r8 * exp( -780._r8 * itemp(:) )
     195    73616640 :       rate(:,195) = 9.5e-13_r8 * exp( 550._r8 * itemp(:) )
     196    73616640 :       exp_fac(:) = exp( 260._r8 * itemp(:) )
     197    73616640 :       rate(:,196) = 2.3e-12_r8 * exp_fac(:)
     198    73616640 :       rate(:,199) = 8.8e-12_r8 * exp_fac(:)
     199    73616640 :       rate(:,198) = 4.5e-12_r8 * exp( 460._r8 * itemp(:) )
     200    73616640 :       rate(:,201) = 1.9e-11_r8 * exp( 215._r8 * itemp(:) )
     201    73616640 :       rate(:,206) = 1.2e-10_r8 * exp( -430._r8 * itemp(:) )
     202    73616640 :       rate(:,212) = 1.6e-10_r8 * exp( -260._r8 * itemp(:) )
     203    73616640 :       exp_fac(:) = exp( 0._r8 * itemp(:) )
     204    73616640 :       rate(:,214) = 1.4e-11_r8 * exp_fac(:)
     205    73616640 :       rate(:,216) = 2.14e-11_r8 * exp_fac(:)
     206    73616640 :       rate(:,217) = 1.9e-10_r8 * exp_fac(:)
     207    73616640 :       rate(:,230) = 2.57e-10_r8 * exp_fac(:)
     208    73616640 :       rate(:,231) = 1.8e-10_r8 * exp_fac(:)
     209    73616640 :       rate(:,232) = 1.794e-10_r8 * exp_fac(:)
     210    73616640 :       rate(:,233) = 1.3e-10_r8 * exp_fac(:)
     211    73616640 :       rate(:,234) = 7.65e-11_r8 * exp_fac(:)
     212    73616640 :       rate(:,243) = 1.31e-10_r8 * exp_fac(:)
     213    73616640 :       rate(:,244) = 3.5e-11_r8 * exp_fac(:)
     214    73616640 :       rate(:,245) = 9e-12_r8 * exp_fac(:)
     215    73616640 :       rate(:,251) = 2.3e-12_r8 * exp_fac(:)
     216    73616640 :       rate(:,252) = 1.2e-11_r8 * exp_fac(:)
     217    73616640 :       rate(:,253) = 5.7e-11_r8 * exp_fac(:)
     218    73616640 :       rate(:,254) = 2.8e-11_r8 * exp_fac(:)
     219    73616640 :       rate(:,255) = 6.6e-11_r8 * exp_fac(:)
     220    73616640 :       rate(:,256) = 1.4e-11_r8 * exp_fac(:)
     221    73616640 :       rate(:,259) = 1.9e-12_r8 * exp_fac(:)
     222    73616640 :       rate(:,285) = 0.047_r8 * exp_fac(:)
     223    73616640 :       rate(:,286) = 7.7e-05_r8 * exp_fac(:)
     224    73616640 :       rate(:,287) = 0.171_r8 * exp_fac(:)
     225    73616640 :       rate(:,291) = 6e-11_r8 * exp_fac(:)
     226    73616640 :       rate(:,294) = 1e-12_r8 * exp_fac(:)
     227    73616640 :       rate(:,295) = 4e-10_r8 * exp_fac(:)
     228    73616640 :       rate(:,296) = 2e-10_r8 * exp_fac(:)
     229    73616640 :       rate(:,297) = 1e-10_r8 * exp_fac(:)
     230    73616640 :       rate(:,298) = 5e-16_r8 * exp_fac(:)
     231    73616640 :       rate(:,299) = 4.4e-10_r8 * exp_fac(:)
     232    73616640 :       rate(:,300) = 9e-10_r8 * exp_fac(:)
     233    73616640 :       rate(:,302) = 1.3e-10_r8 * exp_fac(:)
     234    73616640 :       rate(:,305) = 8e-10_r8 * exp_fac(:)
     235    73616640 :       rate(:,306) = 5e-12_r8 * exp_fac(:)
     236    73616640 :       rate(:,307) = 7e-10_r8 * exp_fac(:)
     237    73616640 :       rate(:,310) = 4.8e-10_r8 * exp_fac(:)
     238    73616640 :       rate(:,311) = 1e-10_r8 * exp_fac(:)
     239    73616640 :       rate(:,312) = 4e-10_r8 * exp_fac(:)
     240    73616640 :       rate(:,215) = 6e-12_r8 * exp( 400._r8 * itemp(:) )
     241    73616640 :       rate(:,220) = 1.46e-11_r8 * exp( -1040._r8 * itemp(:) )
     242    73616640 :       rate(:,221) = 1.42e-12_r8 * exp( -1150._r8 * itemp(:) )
     243    73616640 :       rate(:,222) = 1.64e-12_r8 * exp( -1520._r8 * itemp(:) )
     244    73616640 :       exp_fac(:) = exp( -1100._r8 * itemp(:) )
     245    73616640 :       rate(:,223) = 2.03e-11_r8 * exp_fac(:)
     246    73616640 :       rate(:,258) = 3.4e-12_r8 * exp_fac(:)
     247    73616640 :       rate(:,224) = 1.96e-12_r8 * exp( -1200._r8 * itemp(:) )
     248    73616640 :       rate(:,225) = 4.85e-12_r8 * exp( -850._r8 * itemp(:) )
     249    73616640 :       rate(:,226) = 9e-13_r8 * exp( -360._r8 * itemp(:) )
     250    73616640 :       exp_fac(:) = exp( -1600._r8 * itemp(:) )
     251    73616640 :       rate(:,227) = 1.25e-12_r8 * exp_fac(:)
     252    73616640 :       rate(:,236) = 3.4e-11_r8 * exp_fac(:)
     253    73616640 :       rate(:,228) = 1.3e-12_r8 * exp( -1770._r8 * itemp(:) )
     254    73616640 :       rate(:,229) = 9.2e-13_r8 * exp( -1560._r8 * itemp(:) )
     255    73616640 :       rate(:,235) = 6e-13_r8 * exp( -2058._r8 * itemp(:) )
     256    73616640 :       rate(:,237) = 5.5e-12_r8 * exp( 125._r8 * itemp(:) )
     257    73616640 :       rate(:,238) = 4.1e-13_r8 * exp( 750._r8 * itemp(:) )
     258    73616640 :       rate(:,239) = 2.8e-12_r8 * exp( 300._r8 * itemp(:) )
     259    73616640 :       rate(:,241) = 2.45e-12_r8 * exp( -1775._r8 * itemp(:) )
     260    73616640 :       rate(:,247) = 1.9e-13_r8 * exp( 520._r8 * itemp(:) )
     261    73616640 :       rate(:,248) = 9.6e-12_r8 * exp( -234._r8 * itemp(:) )
     262    73616640 :       rate(:,249) = 2.1e-11_r8 * exp( -2200._r8 * itemp(:) )
     263    73616640 :       rate(:,250) = 7.2e-14_r8 * exp( -1070._r8 * itemp(:) )
     264    73616640 :       rate(:,257) = 1.6e-13_r8 * exp( -2280._r8 * itemp(:) )
     265    73616640 :       rate(:,260) = 2.7e-11_r8 * exp( 335._r8 * itemp(:) )
     266             : 
     267    73616640 :       itemp(:) = 300._r8 * itemp(:)
     268             :  
     269       72960 :       n = ncol*pver
     270             : 
     271    73616640 :       ko(:) = 4.4e-32_r8 * itemp(:)**1.3_r8
     272    73616640 :       kinf(:) = 7.5e-11_r8 * itemp(:)**(-0.2_r8)
     273       72960 :       call jpl( rate(:,116), m, 0.6_r8, ko, kinf, n )
     274             : 
     275    73616640 :       ko(:) = 6.9e-31_r8 * itemp(:)**1._r8
     276    73616640 :       kinf(:) = 2.6e-11_r8
     277       72960 :       call jpl( rate(:,126), m, 0.6_r8, ko, kinf, n )
     278             : 
     279    73616640 :       ko(:) = 2.5e-31_r8 * itemp(:)**1.8_r8
     280    73616640 :       kinf(:) = 2.2e-11_r8 * itemp(:)**0.7_r8
     281       72960 :       call jpl( rate(:,138), m, 0.6_r8, ko, kinf, n )
     282             : 
     283    73616640 :       ko(:) = 9e-32_r8 * itemp(:)**1.5_r8
     284    73616640 :       kinf(:) = 3e-11_r8
     285       72960 :       call jpl( rate(:,146), m, 0.6_r8, ko, kinf, n )
     286             : 
     287    73616640 :       ko(:) = 1.9e-31_r8 * itemp(:)**3.4_r8
     288    73616640 :       kinf(:) = 4e-12_r8 * itemp(:)**0.3_r8
     289       72960 :       call jpl( rate(:,149), m, 0.6_r8, ko, kinf, n )
     290             : 
     291    73616640 :       ko(:) = 2.4e-30_r8 * itemp(:)**3._r8
     292    73616640 :       kinf(:) = 1.6e-12_r8 * itemp(:)**(-0.1_r8)
     293       72960 :       call jpl( rate(:,150), m, 0.6_r8, ko, kinf, n )
     294             : 
     295    73616640 :       ko(:) = 1.8e-30_r8 * itemp(:)**3._r8
     296    73616640 :       kinf(:) = 2.8e-11_r8
     297       72960 :       call jpl( rate(:,151), m, 0.6_r8, ko, kinf, n )
     298             : 
     299    73616640 :       ko(:) = 1.8e-31_r8 * itemp(:)**3.4_r8
     300    73616640 :       kinf(:) = 1.5e-11_r8 * itemp(:)**1.9_r8
     301       72960 :       call jpl( rate(:,169), m, 0.6_r8, ko, kinf, n )
     302             : 
     303    73616640 :       ko(:) = 1.9e-32_r8 * itemp(:)**3.6_r8
     304    73616640 :       kinf(:) = 3.7e-12_r8 * itemp(:)**1.6_r8
     305       72960 :       call jpl( rate(:,189), m, 0.6_r8, ko, kinf, n )
     306             : 
     307    73616640 :       ko(:) = 5.2e-31_r8 * itemp(:)**3.2_r8
     308    73616640 :       kinf(:) = 6.9e-12_r8 * itemp(:)**2.9_r8
     309       72960 :       call jpl( rate(:,200), m, 0.6_r8, ko, kinf, n )
     310             : 
     311    73616640 :       ko(:) = 5.9e-33_r8 * itemp(:)**1._r8
     312    73616640 :       kinf(:) = 1.1e-12_r8 * itemp(:)**(-1.3_r8)
     313       72960 :       call jpl( rate(:,242), m, 0.6_r8, ko, kinf, n )
     314             : 
     315       72960 :       end subroutine setrxt
     316             : 
     317             : 
     318       80640 :       subroutine setrxt_hrates( rate, temp, m, ncol, kbot )
     319             :  
     320             :       use ppgrid, only : pcols, pver
     321             : 
     322             : 
     323             :       use chem_mods, only : rxntot
     324             :       use mo_jpl,    only : jpl
     325             : 
     326             :       implicit none
     327             : 
     328             : !-------------------------------------------------------
     329             : !       ... dummy arguments
     330             : !-------------------------------------------------------
     331             :       integer, intent(in) :: ncol
     332             :       integer, intent(in) :: kbot
     333             :       real(r8), intent(in)    :: temp(pcols,pver)
     334             :       real(r8), intent(in)    :: m(ncol*pver)
     335             :       real(r8), intent(inout) :: rate(ncol*pver,max(1,rxntot))
     336             : 
     337             : !-------------------------------------------------------
     338             : !       ... local variables
     339             : !-------------------------------------------------------
     340             :       integer   ::  n
     341             :       integer   ::  offset
     342             :       integer   ::  k
     343      161280 :       real(r8)  :: itemp(ncol*kbot)
     344      161280 :       real(r8)  :: exp_fac(ncol*kbot)
     345      161280 :       real(r8)  :: ko(ncol*kbot)
     346      161280 :       real(r8)  :: kinf(ncol*kbot)
     347      161280 :       real(r8)  :: wrk(ncol*kbot)
     348             :  
     349       80640 :       n = ncol*kbot
     350             : 
     351    27949824 :       rate(:n,100) = 1e-20_r8
     352    27949824 :       rate(:n,101) = 1.3e-16_r8
     353    27949824 :       rate(:n,105) = 8e-14_r8
     354    27949824 :       rate(:n,106) = 3.9e-17_r8
     355    27949824 :       rate(:n,113) = 6.9e-12_r8
     356    27949824 :       rate(:n,129) = 7e-13_r8
     357    27949824 :       rate(:n,130) = 5e-12_r8
     358    27949824 :       rate(:n,285) = 0.047_r8
     359    27949824 :       rate(:n,286) = 7.7e-05_r8
     360    27949824 :       rate(:n,287) = 0.171_r8
     361    27949824 :       rate(:n,291) = 6e-11_r8
     362    27949824 :       rate(:n,294) = 1e-12_r8
     363    27949824 :       rate(:n,295) = 4e-10_r8
     364    27949824 :       rate(:n,296) = 2e-10_r8
     365    27949824 :       rate(:n,297) = 1e-10_r8
     366    27949824 :       rate(:n,299) = 4.4e-10_r8
     367    27949824 :       rate(:n,302) = 1.3e-10_r8
     368    27949824 :       rate(:n,305) = 8e-10_r8
     369    27949824 :       rate(:n,306) = 5e-12_r8
     370    27949824 :       rate(:n,307) = 7e-10_r8
     371    27949824 :       rate(:n,310) = 4.8e-10_r8
     372    27949824 :       rate(:n,311) = 1e-10_r8
     373    27949824 :       rate(:n,312) = 4e-10_r8
     374             :  
     375     2016000 :       do k = 1,kbot
     376     1935360 :         offset = (k-1)*ncol
     377    29885184 :         itemp(offset+1:offset+ncol) = 1._r8 / temp(:ncol,k)
     378             :       end do
     379             : 
     380    27949824 :       rate(:n,96) = 2.15e-11_r8 * exp( 110._r8 * itemp(:) )
     381    27949824 :       exp_fac(:) = exp( 55._r8 * itemp(:) )
     382    27949824 :       rate(:n,97) = 2.64e-11_r8 * exp_fac(:)
     383    27949824 :       rate(:n,98) = 6.6e-12_r8 * exp_fac(:)
     384    27949824 :       rate(:n,102) = 3.6e-18_r8 * exp( -220._r8 * itemp(:) )
     385    27949824 :       rate(:n,104) = 1.8e-15_r8 * exp( 45._r8 * itemp(:) )
     386    27949824 :       rate(:n,107) = 3.5e-11_r8 * exp( -135._r8 * itemp(:) )
     387    27949824 :       rate(:n,108) = 8e-12_r8 * exp( -2060._r8 * itemp(:) )
     388    27949824 :       rate(:n,117) = 3e-11_r8 * exp( 200._r8 * itemp(:) )
     389    27949824 :       rate(:n,118) = 1e-14_r8 * exp( -490._r8 * itemp(:) )
     390    27949824 :       rate(:n,119) = 1.4e-10_r8 * exp( -470._r8 * itemp(:) )
     391    27949824 :       rate(:n,122) = 4.8e-11_r8 * exp( 250._r8 * itemp(:) )
     392    27949824 :       rate(:n,123) = 1.8e-11_r8 * exp( 180._r8 * itemp(:) )
     393    27949824 :       rate(:n,124) = 1.7e-12_r8 * exp( -940._r8 * itemp(:) )
     394    27949824 :       rate(:n,131) = 2.1e-11_r8 * exp( 100._r8 * itemp(:) )
     395    27949824 :       rate(:n,135) = 1.5e-11_r8 * exp( -3600._r8 * itemp(:) )
     396    27949824 :       rate(:n,136) = 5.1e-12_r8 * exp( 210._r8 * itemp(:) )
     397    27949824 :       rate(:n,144) = 3.3e-12_r8 * exp( 270._r8 * itemp(:) )
     398    27949824 :       rate(:n,145) = 3e-12_r8 * exp( -1500._r8 * itemp(:) )
     399             : 
     400    27949824 :       itemp(:) = 300._r8 * itemp(:)
     401             : 
     402    27949824 :       ko(:) = 4.4e-32_r8 * itemp(:)**1.3_r8
     403    27949824 :       kinf(:) = 7.5e-11_r8 * itemp(:)**(-0.2_r8)
     404       80640 :       call jpl( wrk, m, 0.6_r8, ko, kinf, n )
     405    27949824 :       rate(:n,116) = wrk(:)
     406             : 
     407             : 
     408             : 
     409             : 
     410             : 
     411             : 
     412             : 
     413             : 
     414             : 
     415             : 
     416             : 
     417       80640 :       end subroutine setrxt_hrates
     418             : 
     419             :       end module mo_setrxt

Generated by: LCOV version 1.14