LCOV - code coverage report
Current view: top level - chemistry/pp_waccm_mad_mam5 - mo_setrxt.F90 (source / functions) Hit Total Coverage
Test: coverage.info Lines: 439 439 100.0 %
Date: 2025-03-14 01:26:08 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       21888 :       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       43776 :       real(r8)  :: itemp(ncol*pver)
      36       43776 :       real(r8)  :: exp_fac(ncol*pver)
      37       43776 :       real(r8)  :: ko(ncol*pver)
      38       43776 :       real(r8)  :: kinf(ncol*pver)
      39             : 
      40    34167168 :       rate(:,105) = 9.6e-10_r8
      41    34167168 :       rate(:,106) = 1.3e-09_r8
      42    34167168 :       rate(:,107) = 2e-29_r8
      43    34167168 :       rate(:,108) = 1e-27_r8
      44    34167168 :       rate(:,109) = 1.6e-09_r8
      45    34167168 :       rate(:,110) = 6e-12_r8
      46    34167168 :       rate(:,111) = 2.9e-12_r8
      47    34167168 :       rate(:,112) = 2.9e-11_r8
      48    34167168 :       rate(:,113) = 2e-10_r8
      49    34167168 :       rate(:,114) = 1e-10_r8
      50    34167168 :       rate(:,115) = 1e-10_r8
      51    34167168 :       rate(:,116) = 1e-11_r8
      52    34167168 :       rate(:,117) = 1.7e-10_r8
      53    34167168 :       rate(:,118) = 1e-28_r8
      54    34167168 :       rate(:,119) = 1e-28_r8
      55    34167168 :       rate(:,120) = 4e-11_r8
      56    34167168 :       rate(:,121) = 4e-11_r8
      57    34167168 :       rate(:,122) = 3.5e-12_r8
      58    34167168 :       rate(:,123) = 3.5e-12_r8
      59    34167168 :       rate(:,124) = 3.51e-10_r8
      60    34167168 :       rate(:,125) = 1.1e-10_r8
      61    34167168 :       rate(:,126) = 6e-15_r8
      62    34167168 :       rate(:,127) = 1e-10_r8
      63    34167168 :       rate(:,128) = 1e-10_r8
      64    34167168 :       rate(:,129) = 2.2e-10_r8
      65    34167168 :       rate(:,130) = 1.2e-09_r8
      66    34167168 :       rate(:,131) = 1.4e-10_r8
      67    34167168 :       rate(:,132) = 1.3e-10_r8
      68    34167168 :       rate(:,138) = 1.5e-06_r8
      69    34167168 :       rate(:,139) = 2e-09_r8
      70    34167168 :       rate(:,140) = 1e-09_r8
      71    34167168 :       rate(:,141) = 3.6e-06_r8
      72    34167168 :       rate(:,142) = 4e-12_r8
      73    34167168 :       rate(:,143) = 1e-09_r8
      74    34167168 :       rate(:,144) = 5e-06_r8
      75    34167168 :       rate(:,145) = 7e-12_r8
      76    34167168 :       rate(:,285) = 1e-10_r8
      77    34167168 :       rate(:,286) = 1e-10_r8
      78    34167168 :       rate(:,287) = 3e-10_r8
      79    34167168 :       rate(:,288) = 1.6e-28_r8
      80    34167168 :       rate(:,289) = 1.4e-09_r8
      81    34167168 :       rate(:,290) = 1.6e-09_r8
      82    34167168 :       rate(:,291) = 2e-13_r8
      83    34167168 :       rate(:,292) = 1.2e-10_r8
      84    34167168 :       rate(:,293) = 7e-10_r8
      85    34167168 :       rate(:,294) = 1.6e-28_r8
      86    34167168 :       rate(:,295) = 1.6e-09_r8
      87    34167168 :       rate(:,296) = 1.6e-28_r8
      88    34167168 :       rate(:,297) = 7e-10_r8
      89    34167168 :       rate(:,298) = 1e-12_r8
      90    34167168 :       rate(:,299) = 7.6e-10_r8
      91    34167168 :       rate(:,300) = 1.45e-26_r8
      92    34167168 :       rate(:,301) = 5e-12_r8
      93    34167168 :       rate(:,302) = 1e-13_r8
      94    34167168 :       rate(:,303) = 2e-06_r8
      95    34167168 :       rate(:,304) = 2e-06_r8
      96    34167168 :       rate(:,305) = 7e-11_r8
      97    34167168 :       rate(:,306) = 1.5e-06_r8
      98    34167168 :       rate(:,307) = 1e-09_r8
      99    34167168 :       rate(:,308) = 1.5e-06_r8
     100    34167168 :       rate(:,309) = 7e-12_r8
     101    34167168 :       rate(:,310) = 5e-10_r8
     102    34167168 :       rate(:,311) = 1e-10_r8
     103    34167168 :       rate(:,312) = 1e-09_r8
     104    34167168 :       rate(:,313) = 1e-09_r8
     105    34167168 :       rate(:,314) = 1e-10_r8
     106    34167168 :       rate(:,315) = 1e-10_r8
     107    34167168 :       rate(:,316) = 9.9e-30_r8
     108    34167168 :       rate(:,317) = 1.4e-09_r8
     109    34167168 :       rate(:,318) = 1.6e-09_r8
     110    34167168 :       rate(:,319) = 2.9e-09_r8
     111    34167168 :       rate(:,320) = 7e-10_r8
     112    34167168 :       rate(:,321) = 2e-10_r8
     113    34167168 :       rate(:,322) = 3.4e-31_r8
     114    34167168 :       rate(:,323) = 7.8e-10_r8
     115    34167168 :       rate(:,324) = 1.5e-10_r8
     116    34167168 :       rate(:,325) = 1.5e-10_r8
     117    34167168 :       rate(:,326) = 2e-06_r8
     118    34167168 :       rate(:,327) = 9e-10_r8
     119    34167168 :       rate(:,328) = 2.4e-10_r8
     120    34167168 :       rate(:,329) = 2.8e-28_r8
     121    34167168 :       rate(:,330) = 5.5e-10_r8
     122    34167168 :       rate(:,331) = 8.4e-10_r8
     123    34167168 :       rate(:,332) = 1e-10_r8
     124    34167168 :       rate(:,333) = 1e-10_r8
     125    34167168 :       rate(:,334) = 2.5e-10_r8
     126    34167168 :       rate(:,335) = 4.3e-10_r8
     127    34167168 :       rate(:,336) = 4e-10_r8
     128    34167168 :       rate(:,337) = 1.7e-09_r8
     129    34167168 :       rate(:,338) = 3e-10_r8
     130    34167168 :       rate(:,339) = 1.5e-10_r8
     131    34167168 :       rate(:,341) = 1e-10_r8
     132    34167168 :       rate(:,342) = 1e-10_r8
     133    34167168 :       rate(:,343) = 7.6e-28_r8
     134    34167168 :       rate(:,344) = 1.4e-09_r8
     135    34167168 :       rate(:,345) = 1e-09_r8
     136    34167168 :       rate(:,346) = 1.1e-09_r8
     137    34167168 :       rate(:,347) = 2e-10_r8
     138    34167168 :       rate(:,348) = 9e-10_r8
     139    34167168 :       rate(:,350) = 1e-10_r8
     140    34167168 :       rate(:,351) = 1e-10_r8
     141    34167168 :       rate(:,352) = 2e-28_r8
     142    34167168 :       rate(:,353) = 5.8e-10_r8
     143    34167168 :       rate(:,354) = 3.2e-11_r8
     144    34167168 :       rate(:,355) = 6e-13_r8
     145    34167168 :       rate(:,356) = 2e-09_r8
     146    34167168 :       rate(:,357) = 3.6e-09_r8
     147    34167168 :       rate(:,358) = 5e-13_r8
     148    34167168 :       rate(:,359) = 1e-09_r8
     149    34167168 :       rate(:,360) = 1.9e-10_r8
     150    34167168 :       rate(:,361) = 3e-10_r8
     151    34167168 :       rate(:,362) = 2.9e-31_r8
     152    34167168 :       rate(:,363) = 8e-10_r8
     153    34167168 :       rate(:,387) = 0.000258_r8
     154    34167168 :       rate(:,388) = 0.085_r8
     155    34167168 :       rate(:,389) = 1.2e-10_r8
     156    34167168 :       rate(:,394) = 1.2e-10_r8
     157    34167168 :       rate(:,395) = 1e-20_r8
     158    34167168 :       rate(:,396) = 1.3e-16_r8
     159    34167168 :       rate(:,398) = 4.2e-13_r8
     160    34167168 :       rate(:,400) = 8e-14_r8
     161    34167168 :       rate(:,401) = 3.9e-17_r8
     162    34167168 :       rate(:,408) = 6.9e-12_r8
     163    34167168 :       rate(:,409) = 7.2e-11_r8
     164    34167168 :       rate(:,410) = 1.6e-12_r8
     165    34167168 :       rate(:,416) = 1.8e-12_r8
     166    34167168 :       rate(:,420) = 1.8e-12_r8
     167    34167168 :       rate(:,424) = 7e-13_r8
     168    34167168 :       rate(:,425) = 5e-12_r8
     169    34167168 :       rate(:,434) = 3.5e-12_r8
     170    34167168 :       rate(:,436) = 1.3e-11_r8
     171    34167168 :       rate(:,437) = 2.2e-11_r8
     172    34167168 :       rate(:,438) = 5e-11_r8
     173    34167168 :       rate(:,473) = 1.7e-13_r8
     174    34167168 :       rate(:,475) = 2.607e-10_r8
     175    34167168 :       rate(:,476) = 9.75e-11_r8
     176    34167168 :       rate(:,477) = 2.07e-10_r8
     177    34167168 :       rate(:,478) = 2.088e-10_r8
     178    34167168 :       rate(:,479) = 1.17e-10_r8
     179    34167168 :       rate(:,480) = 4.644e-11_r8
     180    34167168 :       rate(:,481) = 1.204e-10_r8
     181    34167168 :       rate(:,482) = 9.9e-11_r8
     182    34167168 :       rate(:,483) = 3.3e-12_r8
     183    34167168 :       rate(:,502) = 4.5e-11_r8
     184    34167168 :       rate(:,503) = 4.62e-10_r8
     185    34167168 :       rate(:,504) = 1.2e-10_r8
     186    34167168 :       rate(:,505) = 9e-11_r8
     187    34167168 :       rate(:,506) = 3e-11_r8
     188    34167168 :       rate(:,511) = 2.14e-11_r8
     189    34167168 :       rate(:,512) = 1.9e-10_r8
     190    34167168 :       rate(:,525) = 2.57e-10_r8
     191    34167168 :       rate(:,526) = 1.8e-10_r8
     192    34167168 :       rate(:,527) = 1.794e-10_r8
     193    34167168 :       rate(:,528) = 1.3e-10_r8
     194    34167168 :       rate(:,529) = 7.65e-11_r8
     195    34167168 :       rate(:,537) = 1.31e-10_r8
     196    34167168 :       rate(:,538) = 3.5e-11_r8
     197    34167168 :       rate(:,539) = 9e-12_r8
     198    34167168 :       rate(:,545) = 2.3e-12_r8
     199    34167168 :       rate(:,547) = 1.2e-11_r8
     200    34167168 :       rate(:,548) = 5.7e-11_r8
     201    34167168 :       rate(:,549) = 2.8e-11_r8
     202    34167168 :       rate(:,550) = 6.6e-11_r8
     203    34167168 :       rate(:,551) = 1.4e-11_r8
     204    34167168 :       rate(:,554) = 1.9e-12_r8
     205    34167168 :       rate(:,579) = 0.047_r8
     206    34167168 :       rate(:,580) = 7.7e-05_r8
     207    34167168 :       rate(:,581) = 0.171_r8
     208    34167168 :       rate(:,585) = 6e-11_r8
     209    34167168 :       rate(:,588) = 1e-12_r8
     210    34167168 :       rate(:,589) = 4e-10_r8
     211    34167168 :       rate(:,590) = 2e-10_r8
     212    34167168 :       rate(:,591) = 1e-10_r8
     213    34167168 :       rate(:,592) = 5e-16_r8
     214    34167168 :       rate(:,593) = 4.4e-10_r8
     215    34167168 :       rate(:,594) = 9e-10_r8
     216    34167168 :       rate(:,596) = 1.3e-10_r8
     217    34167168 :       rate(:,599) = 8e-10_r8
     218    34167168 :       rate(:,600) = 5e-12_r8
     219    34167168 :       rate(:,601) = 7e-10_r8
     220    34167168 :       rate(:,604) = 4.8e-10_r8
     221    34167168 :       rate(:,605) = 1e-10_r8
     222    34167168 :       rate(:,606) = 4e-10_r8
     223             :  
     224     2867328 :       do n = 1,pver
     225     2845440 :         offset = (n-1)*ncol
     226    37012608 :         itemp(offset+1:offset+ncol) = 1._r8 / temp(:ncol,n)
     227             :       end do
     228             : 
     229    34167168 :       exp_fac(:) = exp( 250._r8 * itemp(:) )
     230    34167168 :       rate(:,340) = 3e-12_r8 * exp_fac(:)
     231    34167168 :       rate(:,417) = 4.8e-11_r8 * exp_fac(:)
     232    34167168 :       rate(:,498) = 1.7e-11_r8 * exp_fac(:)
     233    34167168 :       rate(:,390) = 1.63e-10_r8 * exp( 60._r8 * itemp(:) )
     234    34167168 :       rate(:,391) = 2.15e-11_r8 * exp( 110._r8 * itemp(:) )
     235    34167168 :       exp_fac(:) = exp( 55._r8 * itemp(:) )
     236    34167168 :       rate(:,392) = 2.64e-11_r8 * exp_fac(:)
     237    34167168 :       rate(:,393) = 6.6e-12_r8 * exp_fac(:)
     238    34167168 :       rate(:,397) = 3.6e-18_r8 * exp( -220._r8 * itemp(:) )
     239    34167168 :       rate(:,399) = 1.8e-15_r8 * exp( 45._r8 * itemp(:) )
     240    34167168 :       rate(:,402) = 3.5e-11_r8 * exp( -135._r8 * itemp(:) )
     241    34167168 :       rate(:,403) = 8e-12_r8 * exp( -2060._r8 * itemp(:) )
     242    34167168 :       rate(:,406) = 1.6e-11_r8 * exp( -4570._r8 * itemp(:) )
     243    34167168 :       rate(:,407) = 1.4e-12_r8 * exp( -2000._r8 * itemp(:) )
     244    34167168 :       exp_fac(:) = exp( 200._r8 * itemp(:) )
     245    34167168 :       rate(:,412) = 3e-11_r8 * exp_fac(:)
     246    34167168 :       rate(:,500) = 5.5e-12_r8 * exp_fac(:)
     247    34167168 :       rate(:,535) = 3.8e-12_r8 * exp_fac(:)
     248    34167168 :       rate(:,413) = 1e-14_r8 * exp( -490._r8 * itemp(:) )
     249    34167168 :       rate(:,414) = 1.4e-10_r8 * exp( -470._r8 * itemp(:) )
     250    34167168 :       rate(:,415) = 2.8e-12_r8 * exp( -1800._r8 * itemp(:) )
     251    34167168 :       rate(:,418) = 1.8e-11_r8 * exp( 180._r8 * itemp(:) )
     252    34167168 :       rate(:,419) = 1.7e-12_r8 * exp( -940._r8 * itemp(:) )
     253    34167168 :       rate(:,423) = 4.5e-13_r8 * exp( 610._r8 * itemp(:) )
     254    34167168 :       rate(:,426) = 2.1e-11_r8 * exp( 100._r8 * itemp(:) )
     255    34167168 :       exp_fac(:) = exp( 220._r8 * itemp(:) )
     256    34167168 :       rate(:,427) = 2.9e-12_r8 * exp_fac(:)
     257    34167168 :       rate(:,428) = 1.45e-12_r8 * exp_fac(:)
     258    34167168 :       rate(:,429) = 1.45e-12_r8 * exp_fac(:)
     259    34167168 :       rate(:,430) = 3.3e-12_r8 * exp( -3150._r8 * itemp(:) )
     260    34167168 :       rate(:,431) = 5.1e-12_r8 * exp( 210._r8 * itemp(:) )
     261    34167168 :       exp_fac(:) = exp( -2450._r8 * itemp(:) )
     262    34167168 :       rate(:,432) = 1.2e-13_r8 * exp_fac(:)
     263    34167168 :       rate(:,458) = 3e-11_r8 * exp_fac(:)
     264    34167168 :       exp_fac(:) = exp( 125._r8 * itemp(:) )
     265    34167168 :       rate(:,435) = 1.7e-11_r8 * exp_fac(:)
     266    34167168 :       rate(:,532) = 5.5e-12_r8 * exp_fac(:)
     267    34167168 :       exp_fac(:) = exp( 260._r8 * itemp(:) )
     268    34167168 :       rate(:,439) = 3.44e-12_r8 * exp_fac(:)
     269    34167168 :       rate(:,491) = 2.3e-12_r8 * exp_fac(:)
     270    34167168 :       rate(:,494) = 8.8e-12_r8 * exp_fac(:)
     271    34167168 :       exp_fac(:) = exp( -1500._r8 * itemp(:) )
     272    34167168 :       rate(:,440) = 3e-12_r8 * exp_fac(:)
     273    34167168 :       rate(:,499) = 5.8e-12_r8 * exp_fac(:)
     274    34167168 :       exp_fac(:) = exp( 20._r8 * itemp(:) )
     275    34167168 :       rate(:,442) = 7.26e-11_r8 * exp_fac(:)
     276    34167168 :       rate(:,443) = 4.64e-11_r8 * exp_fac(:)
     277    34167168 :       rate(:,450) = 8.1e-11_r8 * exp( -30._r8 * itemp(:) )
     278    34167168 :       rate(:,451) = 7.1e-12_r8 * exp( -1270._r8 * itemp(:) )
     279    34167168 :       rate(:,452) = 3.05e-11_r8 * exp( -2270._r8 * itemp(:) )
     280    34167168 :       rate(:,453) = 1.1e-11_r8 * exp( -980._r8 * itemp(:) )
     281    34167168 :       exp_fac(:) = exp( 270._r8 * itemp(:) )
     282    34167168 :       rate(:,454) = 1.4e-11_r8 * exp_fac(:)
     283    34167168 :       rate(:,468) = 7.4e-12_r8 * exp_fac(:)
     284    34167168 :       rate(:,455) = 3.6e-11_r8 * exp( -375._r8 * itemp(:) )
     285    34167168 :       rate(:,456) = 2.3e-11_r8 * exp( -200._r8 * itemp(:) )
     286    34167168 :       rate(:,457) = 3.3e-12_r8 * exp( -115._r8 * itemp(:) )
     287    34167168 :       rate(:,459) = 1e-12_r8 * exp( -1590._r8 * itemp(:) )
     288    34167168 :       rate(:,460) = 3.5e-13_r8 * exp( -1370._r8 * itemp(:) )
     289    34167168 :       exp_fac(:) = exp( 290._r8 * itemp(:) )
     290    34167168 :       rate(:,461) = 2.6e-12_r8 * exp_fac(:)
     291    34167168 :       rate(:,462) = 6.4e-12_r8 * exp_fac(:)
     292    34167168 :       rate(:,492) = 4.1e-13_r8 * exp_fac(:)
     293    34167168 :       rate(:,463) = 6.5e-12_r8 * exp( 135._r8 * itemp(:) )
     294    34167168 :       exp_fac(:) = exp( -840._r8 * itemp(:) )
     295    34167168 :       rate(:,465) = 3.6e-12_r8 * exp_fac(:)
     296    34167168 :       rate(:,514) = 2e-12_r8 * exp_fac(:)
     297    34167168 :       rate(:,466) = 1.2e-12_r8 * exp( -330._r8 * itemp(:) )
     298    34167168 :       rate(:,467) = 2.8e-11_r8 * exp( 85._r8 * itemp(:) )
     299    34167168 :       exp_fac(:) = exp( 230._r8 * itemp(:) )
     300    34167168 :       rate(:,469) = 6e-13_r8 * exp_fac(:)
     301    34167168 :       rate(:,489) = 1.5e-12_r8 * exp_fac(:)
     302    34167168 :       rate(:,497) = 1.9e-11_r8 * exp_fac(:)
     303    34167168 :       rate(:,470) = 1e-11_r8 * exp( -3300._r8 * itemp(:) )
     304    34167168 :       rate(:,471) = 1.8e-12_r8 * exp( -250._r8 * itemp(:) )
     305    34167168 :       rate(:,472) = 3.4e-12_r8 * exp( -130._r8 * itemp(:) )
     306    34167168 :       exp_fac(:) = exp( -500._r8 * itemp(:) )
     307    34167168 :       rate(:,474) = 3e-12_r8 * exp_fac(:)
     308    34167168 :       rate(:,508) = 1.4e-10_r8 * exp_fac(:)
     309    34167168 :       exp_fac(:) = exp( -800._r8 * itemp(:) )
     310    34167168 :       rate(:,486) = 1.7e-11_r8 * exp_fac(:)
     311    34167168 :       rate(:,513) = 6.3e-12_r8 * exp_fac(:)
     312    34167168 :       rate(:,487) = 4.8e-12_r8 * exp( -310._r8 * itemp(:) )
     313    34167168 :       rate(:,488) = 1.6e-11_r8 * exp( -780._r8 * itemp(:) )
     314    34167168 :       rate(:,490) = 9.5e-13_r8 * exp( 550._r8 * itemp(:) )
     315    34167168 :       rate(:,493) = 4.5e-12_r8 * exp( 460._r8 * itemp(:) )
     316    34167168 :       rate(:,496) = 1.9e-11_r8 * exp( 215._r8 * itemp(:) )
     317    34167168 :       rate(:,501) = 1.2e-10_r8 * exp( -430._r8 * itemp(:) )
     318    34167168 :       rate(:,507) = 1.6e-10_r8 * exp( -260._r8 * itemp(:) )
     319    34167168 :       exp_fac(:) = exp( 0._r8 * itemp(:) )
     320    34167168 :       rate(:,509) = 1.4e-11_r8 * exp_fac(:)
     321    34167168 :       rate(:,511) = 2.14e-11_r8 * exp_fac(:)
     322    34167168 :       rate(:,512) = 1.9e-10_r8 * exp_fac(:)
     323    34167168 :       rate(:,525) = 2.57e-10_r8 * exp_fac(:)
     324    34167168 :       rate(:,526) = 1.8e-10_r8 * exp_fac(:)
     325    34167168 :       rate(:,527) = 1.794e-10_r8 * exp_fac(:)
     326    34167168 :       rate(:,528) = 1.3e-10_r8 * exp_fac(:)
     327    34167168 :       rate(:,529) = 7.65e-11_r8 * exp_fac(:)
     328    34167168 :       rate(:,537) = 1.31e-10_r8 * exp_fac(:)
     329    34167168 :       rate(:,538) = 3.5e-11_r8 * exp_fac(:)
     330    34167168 :       rate(:,539) = 9e-12_r8 * exp_fac(:)
     331    34167168 :       rate(:,545) = 2.3e-12_r8 * exp_fac(:)
     332    34167168 :       rate(:,547) = 1.2e-11_r8 * exp_fac(:)
     333    34167168 :       rate(:,548) = 5.7e-11_r8 * exp_fac(:)
     334    34167168 :       rate(:,549) = 2.8e-11_r8 * exp_fac(:)
     335    34167168 :       rate(:,550) = 6.6e-11_r8 * exp_fac(:)
     336    34167168 :       rate(:,551) = 1.4e-11_r8 * exp_fac(:)
     337    34167168 :       rate(:,554) = 1.9e-12_r8 * exp_fac(:)
     338    34167168 :       rate(:,579) = 0.047_r8 * exp_fac(:)
     339    34167168 :       rate(:,580) = 7.7e-05_r8 * exp_fac(:)
     340    34167168 :       rate(:,581) = 0.171_r8 * exp_fac(:)
     341    34167168 :       rate(:,585) = 6e-11_r8 * exp_fac(:)
     342    34167168 :       rate(:,588) = 1e-12_r8 * exp_fac(:)
     343    34167168 :       rate(:,589) = 4e-10_r8 * exp_fac(:)
     344    34167168 :       rate(:,590) = 2e-10_r8 * exp_fac(:)
     345    34167168 :       rate(:,591) = 1e-10_r8 * exp_fac(:)
     346    34167168 :       rate(:,592) = 5e-16_r8 * exp_fac(:)
     347    34167168 :       rate(:,593) = 4.4e-10_r8 * exp_fac(:)
     348    34167168 :       rate(:,594) = 9e-10_r8 * exp_fac(:)
     349    34167168 :       rate(:,596) = 1.3e-10_r8 * exp_fac(:)
     350    34167168 :       rate(:,599) = 8e-10_r8 * exp_fac(:)
     351    34167168 :       rate(:,600) = 5e-12_r8 * exp_fac(:)
     352    34167168 :       rate(:,601) = 7e-10_r8 * exp_fac(:)
     353    34167168 :       rate(:,604) = 4.8e-10_r8 * exp_fac(:)
     354    34167168 :       rate(:,605) = 1e-10_r8 * exp_fac(:)
     355    34167168 :       rate(:,606) = 4e-10_r8 * exp_fac(:)
     356    34167168 :       rate(:,510) = 6e-12_r8 * exp( 400._r8 * itemp(:) )
     357    34167168 :       rate(:,515) = 1.46e-11_r8 * exp( -1040._r8 * itemp(:) )
     358    34167168 :       rate(:,516) = 1.42e-12_r8 * exp( -1150._r8 * itemp(:) )
     359    34167168 :       rate(:,517) = 1.64e-12_r8 * exp( -1520._r8 * itemp(:) )
     360    34167168 :       rate(:,518) = 2.03e-11_r8 * exp( -1110._r8 * itemp(:) )
     361    34167168 :       rate(:,519) = 1.96e-12_r8 * exp( -1200._r8 * itemp(:) )
     362    34167168 :       rate(:,520) = 4.85e-12_r8 * exp( -850._r8 * itemp(:) )
     363    34167168 :       rate(:,521) = 9e-13_r8 * exp( -360._r8 * itemp(:) )
     364    34167168 :       exp_fac(:) = exp( -1600._r8 * itemp(:) )
     365    34167168 :       rate(:,522) = 1.25e-12_r8 * exp_fac(:)
     366    34167168 :       rate(:,531) = 3.4e-11_r8 * exp_fac(:)
     367    34167168 :       rate(:,523) = 1.3e-12_r8 * exp( -1770._r8 * itemp(:) )
     368    34167168 :       rate(:,524) = 9.2e-13_r8 * exp( -1560._r8 * itemp(:) )
     369    34167168 :       rate(:,530) = 6e-13_r8 * exp( -2058._r8 * itemp(:) )
     370    34167168 :       rate(:,533) = 4.1e-13_r8 * exp( 750._r8 * itemp(:) )
     371    34167168 :       rate(:,534) = 2.8e-12_r8 * exp( 300._r8 * itemp(:) )
     372    34167168 :       rate(:,536) = 2.45e-12_r8 * exp( -1775._r8 * itemp(:) )
     373    34167168 :       rate(:,541) = 1.9e-13_r8 * exp( 520._r8 * itemp(:) )
     374    34167168 :       rate(:,542) = 1.1e-11_r8 * exp( -280._r8 * itemp(:) )
     375    34167168 :       rate(:,543) = 2.1e-11_r8 * exp( -2200._r8 * itemp(:) )
     376    34167168 :       rate(:,544) = 7.2e-14_r8 * exp( -1070._r8 * itemp(:) )
     377    34167168 :       rate(:,552) = 1.6e-13_r8 * exp( -2280._r8 * itemp(:) )
     378    34167168 :       rate(:,553) = 3.4e-12_r8 * exp( -1100._r8 * itemp(:) )
     379    34167168 :       rate(:,555) = 2.6e-11_r8 * exp( 330._r8 * itemp(:) )
     380             : 
     381    34167168 :       itemp(:) = 300._r8 * itemp(:)
     382             :  
     383       21888 :       n = ncol*pver
     384             : 
     385    34167168 :       ko(:) = 7e-31_r8 * itemp(:)**2.6_r8
     386    34167168 :       kinf(:) = 3.6e-11_r8 * itemp(:)**0.1_r8
     387       21888 :       call jpl( rate(:,349), m, 0.6_r8, ko, kinf, n )
     388             : 
     389    34167168 :       ko(:) = 5.3e-32_r8 * itemp(:)**1.8_r8
     390    34167168 :       kinf(:) = 9.5e-11_r8 * itemp(:)**(-0.4_r8)
     391       21888 :       call jpl( rate(:,411), m, 0.6_r8, ko, kinf, n )
     392             : 
     393    34167168 :       ko(:) = 6.9e-31_r8 * itemp(:)**1._r8
     394    34167168 :       kinf(:) = 2.6e-11_r8
     395       21888 :       call jpl( rate(:,421), m, 0.6_r8, ko, kinf, n )
     396             : 
     397    34167168 :       ko(:) = 2.5e-31_r8 * itemp(:)**1.8_r8
     398    34167168 :       kinf(:) = 2.2e-11_r8 * itemp(:)**0.7_r8
     399       21888 :       call jpl( rate(:,433), m, 0.6_r8, ko, kinf, n )
     400             : 
     401    34167168 :       ko(:) = 9e-32_r8 * itemp(:)**1.5_r8
     402    34167168 :       kinf(:) = 3e-11_r8
     403       21888 :       call jpl( rate(:,441), m, 0.6_r8, ko, kinf, n )
     404             : 
     405    34167168 :       ko(:) = 1.9e-31_r8 * itemp(:)**3.4_r8
     406    34167168 :       kinf(:) = 4e-12_r8 * itemp(:)**0.3_r8
     407       21888 :       call jpl( rate(:,444), m, 0.6_r8, ko, kinf, n )
     408             : 
     409    34167168 :       ko(:) = 2.4e-30_r8 * itemp(:)**3._r8
     410    34167168 :       kinf(:) = 1.6e-12_r8 * itemp(:)**(-0.1_r8)
     411       21888 :       call jpl( rate(:,445), m, 0.6_r8, ko, kinf, n )
     412             : 
     413    34167168 :       ko(:) = 1.8e-30_r8 * itemp(:)**3._r8
     414    34167168 :       kinf(:) = 2.8e-11_r8
     415       21888 :       call jpl( rate(:,446), m, 0.6_r8, ko, kinf, n )
     416             : 
     417    34167168 :       ko(:) = 1.8e-31_r8 * itemp(:)**3.4_r8
     418    34167168 :       kinf(:) = 1.5e-11_r8 * itemp(:)**1.9_r8
     419       21888 :       call jpl( rate(:,464), m, 0.6_r8, ko, kinf, n )
     420             : 
     421    34167168 :       ko(:) = 1.9e-32_r8 * itemp(:)**3.6_r8
     422    34167168 :       kinf(:) = 3.7e-12_r8 * itemp(:)**1.6_r8
     423       21888 :       call jpl( rate(:,484), m, 0.6_r8, ko, kinf, n )
     424             : 
     425    34167168 :       ko(:) = 5.2e-31_r8 * itemp(:)**3.2_r8
     426    34167168 :       kinf(:) = 6.9e-12_r8 * itemp(:)**2.9_r8
     427       21888 :       call jpl( rate(:,495), m, 0.6_r8, ko, kinf, n )
     428             : 
     429    34167168 :       ko(:) = 2.9e-31_r8 * itemp(:)**4.1_r8
     430    34167168 :       kinf(:) = 1.7e-12_r8 * itemp(:)**(-0.2_r8)
     431       21888 :       call jpl( rate(:,546), m, 0.6_r8, ko, kinf, n )
     432             : 
     433       21888 :       end subroutine setrxt
     434             : 
     435             : 
     436       24192 :       subroutine setrxt_hrates( rate, temp, m, ncol, kbot )
     437             :  
     438             :       use ppgrid, only : pcols, pver
     439             : 
     440             : 
     441             :       use chem_mods, only : rxntot
     442             :       use mo_jpl,    only : jpl
     443             : 
     444             :       implicit none
     445             : 
     446             : !-------------------------------------------------------
     447             : !       ... dummy arguments
     448             : !-------------------------------------------------------
     449             :       integer, intent(in) :: ncol
     450             :       integer, intent(in) :: kbot
     451             :       real(r8), intent(in)    :: temp(pcols,pver)
     452             :       real(r8), intent(in)    :: m(ncol*pver)
     453             :       real(r8), intent(inout) :: rate(ncol*pver,max(1,rxntot))
     454             : 
     455             : !-------------------------------------------------------
     456             : !       ... local variables
     457             : !-------------------------------------------------------
     458             :       integer   ::  n
     459             :       integer   ::  offset
     460             :       integer   ::  k
     461       48384 :       real(r8)  :: itemp(ncol*kbot)
     462       48384 :       real(r8)  :: exp_fac(ncol*kbot)
     463       48384 :       real(r8)  :: ko(ncol*kbot)
     464       48384 :       real(r8)  :: kinf(ncol*kbot)
     465       48384 :       real(r8)  :: wrk(ncol*kbot)
     466             :  
     467       24192 :       n = ncol*kbot
     468             : 
     469    24409728 :       rate(:n,395) = 1e-20_r8
     470    24409728 :       rate(:n,396) = 1.3e-16_r8
     471    24409728 :       rate(:n,400) = 8e-14_r8
     472    24409728 :       rate(:n,401) = 3.9e-17_r8
     473    24409728 :       rate(:n,408) = 6.9e-12_r8
     474    24409728 :       rate(:n,424) = 7e-13_r8
     475    24409728 :       rate(:n,425) = 5e-12_r8
     476    24409728 :       rate(:n,579) = 0.047_r8
     477    24409728 :       rate(:n,580) = 7.7e-05_r8
     478    24409728 :       rate(:n,581) = 0.171_r8
     479    24409728 :       rate(:n,585) = 6e-11_r8
     480    24409728 :       rate(:n,588) = 1e-12_r8
     481    24409728 :       rate(:n,589) = 4e-10_r8
     482    24409728 :       rate(:n,590) = 2e-10_r8
     483    24409728 :       rate(:n,591) = 1e-10_r8
     484    24409728 :       rate(:n,593) = 4.4e-10_r8
     485    24409728 :       rate(:n,596) = 1.3e-10_r8
     486    24409728 :       rate(:n,599) = 8e-10_r8
     487    24409728 :       rate(:n,600) = 5e-12_r8
     488    24409728 :       rate(:n,601) = 7e-10_r8
     489    24409728 :       rate(:n,604) = 4.8e-10_r8
     490    24409728 :       rate(:n,605) = 1e-10_r8
     491    24409728 :       rate(:n,606) = 4e-10_r8
     492             :  
     493     2056320 :       do k = 1,kbot
     494     2032128 :         offset = (k-1)*ncol
     495    26441856 :         itemp(offset+1:offset+ncol) = 1._r8 / temp(:ncol,k)
     496             :       end do
     497             : 
     498    24409728 :       rate(:n,391) = 2.15e-11_r8 * exp( 110._r8 * itemp(:) )
     499    24409728 :       exp_fac(:) = exp( 55._r8 * itemp(:) )
     500    24409728 :       rate(:n,392) = 2.64e-11_r8 * exp_fac(:)
     501    24409728 :       rate(:n,393) = 6.6e-12_r8 * exp_fac(:)
     502    24409728 :       rate(:n,397) = 3.6e-18_r8 * exp( -220._r8 * itemp(:) )
     503    24409728 :       rate(:n,399) = 1.8e-15_r8 * exp( 45._r8 * itemp(:) )
     504    24409728 :       rate(:n,402) = 3.5e-11_r8 * exp( -135._r8 * itemp(:) )
     505    24409728 :       rate(:n,403) = 8e-12_r8 * exp( -2060._r8 * itemp(:) )
     506    24409728 :       rate(:n,412) = 3e-11_r8 * exp( 200._r8 * itemp(:) )
     507    24409728 :       rate(:n,413) = 1e-14_r8 * exp( -490._r8 * itemp(:) )
     508    24409728 :       rate(:n,414) = 1.4e-10_r8 * exp( -470._r8 * itemp(:) )
     509    24409728 :       rate(:n,417) = 4.8e-11_r8 * exp( 250._r8 * itemp(:) )
     510    24409728 :       rate(:n,418) = 1.8e-11_r8 * exp( 180._r8 * itemp(:) )
     511    24409728 :       rate(:n,419) = 1.7e-12_r8 * exp( -940._r8 * itemp(:) )
     512    24409728 :       rate(:n,426) = 2.1e-11_r8 * exp( 100._r8 * itemp(:) )
     513    24409728 :       rate(:n,430) = 3.3e-12_r8 * exp( -3150._r8 * itemp(:) )
     514    24409728 :       rate(:n,431) = 5.1e-12_r8 * exp( 210._r8 * itemp(:) )
     515    24409728 :       rate(:n,439) = 3.44e-12_r8 * exp( 260._r8 * itemp(:) )
     516    24409728 :       rate(:n,440) = 3e-12_r8 * exp( -1500._r8 * itemp(:) )
     517             : 
     518    24409728 :       itemp(:) = 300._r8 * itemp(:)
     519             : 
     520             : 
     521    24409728 :       ko(:) = 5.3e-32_r8 * itemp(:)**1.8_r8
     522    24409728 :       kinf(:) = 9.5e-11_r8 * itemp(:)**(-0.4_r8)
     523       24192 :       call jpl( wrk, m, 0.6_r8, ko, kinf, n )
     524    24409728 :       rate(:n,411) = wrk(:)
     525             : 
     526             : 
     527             : 
     528             : 
     529             : 
     530             : 
     531             : 
     532             : 
     533             : 
     534             : 
     535             : 
     536       24192 :       end subroutine setrxt_hrates
     537             : 
     538             :       end module mo_setrxt

Generated by: LCOV version 1.14