                                                                                
 MODULE mod_chem_spack_fexprod                                                  
                                                                                
   IMPLICIT NONE                                                                
   PRIVATE                                                                      
   PUBLIC :: fexprod ! subroutine                                               
 CONTAINS                                                                       
                                                                                
   SUBROUTINE fexprod(w,prod,ngas,ijkbegin,ijkend,maxblock_size,nr)             
                                                                                
!------------------------------------------------------------------------       
!                                                                               
!     -- DESCRIPTION                                                            
!                                                                               
!     This routine computes the production  term P in a P-Lc formulation.       
!     This routine is automatically generated by SPACK.                         
!     Mechanism: ../Mechanism/CB07                                              
!     Species: ../Mechanism/ciCB07                                              
!                                                                               
!------------------------------------------------------------------------       
!                                                                               
!     -- INPUT VARIABLES                                                        
!                                                                               
!     W: reaction rates.                                                        
!                                                                               
!     -- INPUT/OUTPUT VARIABLES                                                 
!                                                                               
!     -- OUTPUT VARIABLES                                                       
!                                                                               
!     PROD: array of chemical production terms.                                 
!                                                                               
!------------------------------------------------------------------------       
!                                                                               
!     -- REMARKS                                                                
!                                                                               
!------------------------------------------------------------------------       
!                                                                               
!     -- MODIFICATIONS                                                          
!                                                                               
!------------------------------------------------------------------------       
!                                                                               
!     -- AUTHOR(S)                                                              
!                                                                               
!     SPACK.                                                                    
!                                                                               
!------------------------------------------------------------------------       
                                                                                
                                                                                
                                                                                
       IMPLICIT NONE                                                            
                                                                                
      INTEGER  	, INTENT(IN)  :: ngas                                           
      INTEGER  	, INTENT(IN)  :: ijkbegin		                                     
      INTEGER  	, INTENT(IN)  :: ijkend 		                                      
      INTEGER  	, INTENT(IN)  :: maxblock_size		                                
      INTEGER  	, INTENT(IN)  :: nr		      	                                    
      DOUBLE PRECISION , INTENT(IN)  :: w(maxblock_size,nr)	                    
      DOUBLE PRECISION , INTENT(OUT) :: prod(maxblock_size,NGAS)                
      INTEGER :: ijk						                                                      
                                                                                
                                                                                
!     Chemical production terms.                                                
                                                                                
      DO ijk=ijkbegin,ijkend                                                    
      prod(ijk,  1) = + w(ijk,  5) &
          +  0.6500000000000000D+00 * w(ijk,  6) &
          + w(ijk,  8) &
          + w(ijk, 27) &
          + w(ijk, 32) &
          + w(ijk, 33) &
          + w(ijk, 35) &
          +  0.7000000000000000D+00 * w(ijk, 36) &
          + w(ijk, 37) &
          + w(ijk, 39) &
          + w(ijk, 40) &
          +  0.2000000000000000D+01 * w(ijk, 42) &
          + w(ijk, 44) &
          +  0.2000000000000000D+01 * w(ijk, 45) &
          + w(ijk, 48) &
          +  0.2000000000000000D+01 * w(ijk, 51) &
          + w(ijk, 60) &
          + w(ijk, 62) &
          + w(ijk, 75) &
          +  0.2000000000000000D+00 * w(ijk, 79) &
          +  0.9000000000000000D+00 * w(ijk, 85) &
          + w(ijk, 94)
      prod(ijk,  2) = + w(ijk,  1) &
          + w(ijk,  4) &
          + w(ijk,  7) &
          + w(ijk, 28) &
          + w(ijk, 44) &
          + w(ijk, 46) &
          +  0.2000000000000000D+00 * w(ijk, 80)
      prod(ijk,  3) = + w(ijk,  1) &
          + w(ijk,  3) &
          + w(ijk,  8) &
          + w(ijk, 18) &
          + w(ijk, 19)
      prod(ijk,  4) = + w(ijk, 16) &
          +  0.2500000000000000D+00 * w(ijk, 63)
      prod(ijk,  5) = +  0.3500000000000000D+00 * w(ijk,  6) &
          + w(ijk, 29) &
          + w(ijk, 38) &
          + w(ijk, 41) &
          + w(ijk, 48)
      prod(ijk,  6) = + w(ijk,  2)
      prod(ijk,  7) = + w(ijk,  5) &
          +  0.3500000000000000D+00 * w(ijk,  6) &
          +  0.2000000000000000D+01 * w(ijk, 20) &
          + w(ijk, 22) &
          + w(ijk, 33) &
          +  0.7000000000000000D+00 * w(ijk, 36) &
          + w(ijk, 54) &
          + w(ijk, 57) &
          +  0.3500000000000000D+00 * w(ijk, 69) &
          +  0.8000000000000000D-01 * w(ijk, 71) &
          +  0.5100000000000000D-01 * w(ijk, 72) &
          +  0.8500000000000001D-01 * w(ijk, 74) &
          +  0.2660000000000000D+00 * w(ijk, 78) &
          +  0.2680000000000000D+00 * w(ijk, 82) &
          +  0.8000000000000000D-01 * w(ijk, 91)
      prod(ijk,  8) = +  0.6500000000000000D+00 * w(ijk,  6) &
          +  0.2000000000000000D+01 * w(ijk, 11) &
          +  0.2000000000000000D+01 * w(ijk, 12) &
          +  0.1033000000000000D+01 * w(ijk, 13) &
          + w(ijk, 14) &
          + w(ijk, 15) &
          + w(ijk, 21) &
          + w(ijk, 24) &
          + w(ijk, 32) &
          + w(ijk, 35) &
          + w(ijk, 52) &
          + w(ijk, 53) &
          + w(ijk, 54) &
          + w(ijk, 55) &
          + w(ijk, 56) &
          + w(ijk, 60) &
          +  0.2000000000000000D+01 * w(ijk, 64) &
          +  0.1100000000000000D+00 * w(ijk, 65) &
          +  0.9399999999999999D+00 * w(ijk, 66) &
          + w(ijk, 67) &
          +  0.1550000000000000D+01 * w(ijk, 69) &
          + w(ijk, 70) &
          +  0.8000000000000000D-01 * w(ijk, 71) &
          +  0.1470000000000000D+00 * w(ijk, 72) &
          + w(ijk, 73) &
          +  0.1500000000000000D+00 * w(ijk, 74) &
          +  0.2500000000000000D+00 * w(ijk, 76) &
          +  0.9120000000000000D+00 * w(ijk, 77) &
          +  0.6600000000000000D-01 * w(ijk, 78) &
          +  0.8000000000000000D+00 * w(ijk, 79) &
          +  0.8000000000000000D+00 * w(ijk, 80) &
          +  0.5030000000000000D+00 * w(ijk, 81) &
          +  0.1540000000000000D+00 * w(ijk, 82) &
          +  0.9250000000000000D+00 * w(ijk, 83) &
          +  0.4400000000000000D+00 * w(ijk, 84) &
          +  0.9000000000000000D+00 * w(ijk, 85) &
          + w(ijk, 86) &
          +  0.6000000000000000D+00 * w(ijk, 87) &
          +  0.2000000000000000D+01 * w(ijk, 90) &
          +  0.7600000000000000D+00 * w(ijk, 91) &
          +  0.7000000000000000D+00 * w(ijk, 92) &
          + w(ijk,101) &
          + w(ijk,102) &
          + w(ijk,103)
      prod(ijk,  9) = + w(ijk, 47)
      prod(ijk, 10) = + w(ijk, 31) &
          +  0.3000000000000000D+00 * w(ijk, 36) &
          +  0.2000000000000000D+01 * w(ijk, 49) &
          +  0.2000000000000000D+01 * w(ijk, 50) &
          + w(ijk, 56) &
          + w(ijk, 59) &
          +  0.7500000000000000D-01 * w(ijk, 83) &
          + w(ijk, 88)
      prod(ijk, 11) = + w(ijk, 30) &
          +  0.2000000000000000D+01 * w(ijk, 43)
      prod(ijk, 12) = + w(ijk, 34)
      prod(ijk, 13) = + w(ijk, 25) &
          + w(ijk, 26) &
          +  0.2000000000000000D-01 * w(ijk, 71)
      prod(ijk, 14) = + w(ijk, 10) &
          + w(ijk, 11) &
          + w(ijk, 12) &
          +  0.3330000000000000D+00 * w(ijk, 13) &
          + w(ijk, 14) &
          + w(ijk, 15) &
          + w(ijk, 54) &
          + w(ijk, 55) &
          + w(ijk, 56) &
          +  0.9500000000000000D+00 * w(ijk, 69) &
          +  0.3250000000000000D+00 * w(ijk, 71) &
          +  0.1020000000000000D+00 * w(ijk, 72) &
          +  0.1300000000000000D+00 * w(ijk, 74) &
          +  0.6600000000000000D-01 * w(ijk, 78) &
          +  0.3340000000000000D+00 * w(ijk, 81) &
          +  0.2250000000000000D+00 * w(ijk, 82) &
          +  0.6430000000000000D+00 * w(ijk, 83) &
          +  0.2000000000000000D+01 * w(ijk, 90) &
          +  0.6899999999999999D+00 * w(ijk, 91)
      prod(ijk, 15) = + w(ijk, 12) &
          +  0.9000000000000000D+00 * w(ijk, 13) &
          + w(ijk, 60) &
          +  0.2000000000000000D+01 * w(ijk, 64) &
          +  0.4900000000000000D+00 * w(ijk, 69) &
          +  0.1560000000000000D+01 * w(ijk, 70) &
          +  0.1030000000000000D+01 * w(ijk, 71) &
          +  0.5100000000000000D-01 * w(ijk, 72) &
          + w(ijk, 73) &
          +  0.4850000000000000D+00 * w(ijk, 74) &
          + w(ijk, 75) &
          +  0.5000000000000000D+00 * w(ijk, 76) &
          +  0.6290000000000000D+00 * w(ijk, 77) &
          +  0.6000000000000000D+00 * w(ijk, 78) &
          +  0.1670000000000000D+00 * w(ijk, 81) &
          +  0.1500000000000000D+00 * w(ijk, 82) &
          +  0.2820000000000000D+00 * w(ijk, 83) &
          + w(ijk, 90) &
          +  0.7000000000000000D+00 * w(ijk, 91) &
          + w(ijk,101) &
          + w(ijk,102)
      prod(ijk, 16) = +  0.6700000000000000D-01 * w(ijk, 13) &
          +  0.1100000000000000D+00 * w(ijk, 65) &
          +  0.1100000000000000D+01 * w(ijk, 66) &
          +  0.2200000000000000D+00 * w(ijk, 70) &
          +  0.5190000000000000D+00 * w(ijk, 72) &
          + w(ijk, 73) &
          +  0.2100000000000000D+00 * w(ijk, 74) &
          + w(ijk, 75) &
          +  0.1500000000000000D+00 * w(ijk, 78) &
          +  0.8000000000000000D+00 * w(ijk, 79) &
          +  0.8000000000000000D+00 * w(ijk, 80) &
          +  0.2730000000000000D+00 * w(ijk, 81) &
          +  0.2000000000000000D-01 * w(ijk, 82) &
          +  0.3570000000000000D+00 * w(ijk, 83) &
          +  0.3000000000000000D-01 * w(ijk, 91) &
          + w(ijk,103)
      prod(ijk, 17) = +  0.9670000000000000D+00 * w(ijk, 13) &
          + w(ijk, 14) &
          + w(ijk, 15) &
          + w(ijk, 57) &
          + w(ijk, 58) &
          + w(ijk, 59) &
          + w(ijk, 62) &
          +  0.2500000000000000D+00 * w(ijk, 76) &
          +  0.2000000000000000D+00 * w(ijk, 78) &
          +  0.4980000000000000D+00 * w(ijk, 81) &
          +  0.1140000000000000D+00 * w(ijk, 82) &
          +  0.7500000000000000D-01 * w(ijk, 83) &
          + w(ijk, 90) &
          +  0.6200000000000000D+00 * w(ijk, 91) &
          + w(ijk, 93)
      prod(ijk, 18) = + w(ijk, 12) &
          +  0.7000000000000000D+00 * w(ijk, 13) &
          + w(ijk, 60) &
          +  0.2000000000000000D+01 * w(ijk, 64) &
          +  0.8700000000000000D+00 * w(ijk, 65) &
          +  0.9600000000000000D+00 * w(ijk, 66) &
          +  0.6000000000000000D+00 * w(ijk, 69) &
          + w(ijk, 70) &
          +  0.9700000000000000D-01 * w(ijk, 72) &
          + w(ijk, 73) &
          +  0.4400000000000000D-01 * w(ijk, 74) &
          +  0.7000000000000000D+00 * w(ijk, 75) &
          +  0.2500000000000000D+00 * w(ijk, 76) &
          +  0.9910000000000000D+00 * w(ijk, 77) &
          +  0.2000000000000000D+00 * w(ijk, 78) &
          + w(ijk, 79) &
          + w(ijk, 80) &
          +  0.7130000000000000D+00 * w(ijk, 81) &
          +  0.6400000000000000D-01 * w(ijk, 82) &
          +  0.7500000000000000D-01 * w(ijk, 83) &
          +  0.8000000000000000D-01 * w(ijk, 84) &
          +  0.6000000000000000D+00 * w(ijk, 87) &
          + w(ijk, 90) &
          +  0.3000000000000000D-01 * w(ijk, 91) &
          +  0.1000000000000000D+00 * w(ijk, 92) &
          + w(ijk, 93) &
          + w(ijk,101)
      prod(ijk, 19) = + w(ijk, 61)
      prod(ijk, 20) = +  0.8320000000000000D+00 * w(ijk, 13) &
          +  0.8090000000000001D+00 * w(ijk, 72) &
          +  0.9660000000000000D+00 * w(ijk, 74) &
          +  0.2500000000000000D+00 * w(ijk, 76) &
          +  0.3500000000000000D+00 * w(ijk, 78) &
          +  0.2400000000000000D+01 * w(ijk, 79) &
          +  0.2400000000000000D+01 * w(ijk, 80) &
          +  0.1565000000000000D+01 * w(ijk, 81) &
          +  0.3600000000000000D+00 * w(ijk, 82) &
          +  0.1282000000000000D+01 * w(ijk, 83) &
          +  0.1100000000000000D+01 * w(ijk, 92)
      prod(ijk, 21) = +  0.1300000000000000D+00 * w(ijk, 65) &
          +  0.4000000000000000D-01 * w(ijk, 66) &
          +  0.5000000000000000D-02 * w(ijk, 72) &
          +  0.1000000000000000D-02 * w(ijk, 74) &
          +  0.3000000000000000D+00 * w(ijk, 75) &
          +  0.8799999999999999D-01 * w(ijk, 77)
      prod(ijk, 22) = +  0.7600000000000000D+00 * w(ijk, 65)
      prod(ijk, 26) = +  0.3600000000000000D+00 * w(ijk, 84) &
          + w(ijk, 86) &
          +  0.2000000000000000D+00 * w(ijk, 92)
      prod(ijk, 27) = +  0.5600000000000001D+00 * w(ijk, 84) &
          +  0.3000000000000000D+00 * w(ijk, 92)
      prod(ijk, 28) = +  0.9000000000000000D+00 * w(ijk, 85) &
          +  0.3000000000000000D+00 * w(ijk, 87)
      prod(ijk, 29) = +  0.4000000000000000D+00 * w(ijk, 87) &
          + w(ijk, 88)
      prod(ijk, 30) = +  0.1680000000000000D+00 * w(ijk, 81) &
          +  0.8500000000000000D+00 * w(ijk, 82) &
          +  0.2000000000000000D+00 * w(ijk, 91) &
          +  0.8000000000000000D+00 * w(ijk, 92)
      prod(ijk, 33) = +  0.7500000000000000D+00 * w(ijk, 76) &
          +  0.9120000000000000D+00 * w(ijk, 77) &
          +  0.6500000000000000D+00 * w(ijk, 78) &
          +  0.6500000000000000D+00 * w(ijk, 79) &
          +  0.2000000000000000D+00 * w(ijk, 80)
      END DO   
                                                                                
   END SUBROUTINE fexprod                                                       
                                                                                
  END MODULE mod_chem_spack_fexprod                                             
                                                                                
