                                                                                
 MODULE mod_chem_spack_fexloss                                                  
                                                                                
   IMPLICIT NONE                                                                
   PRIVATE                                                                      
   PUBLIC :: fexloss ! subroutine                                               
 CONTAINS                                                                       
                                                                                
   SUBROUTINE fexloss(dw,loss,ngas,ijkbegin,ijkend,maxblock_size,nr)            
                                                                                
!------------------------------------------------------------------------       
!                                                                               
!     -- DESCRIPTION                                                            
!                                                                               
!     This routine computes the chemical loss  term L in a P-Lc formulation.    
!     This routine is automatically generated by SPACK.                         
!     Mechanism: ../Mechanism/RELACS                                            
!     Species: ../Mechanism/ciRLCS                                              
!                                                                               
!------------------------------------------------------------------------       
!                                                                               
!     -- INPUT VARIABLES                                                        
!                                                                               
!     DW: derivative of reaction rates wrt Y.                                   
!                                                                               
!     -- INPUT/OUTPUT VARIABLES                                                 
!                                                                               
!     -- OUTPUT VARIABLES                                                       
!                                                                               
!     LOSS: array of chemical loss 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)  :: dw(maxblock_size,nr,NGAS)                
     DOUBLE PRECISION , INTENT(OUT) :: loss(maxblock_size,NGAS)                 
     INTEGER :: ijk						                                                       
                                                                                
                                                                                
!     Chemical loss terms.                                                      
                                                                                
      DO ijk=ijkbegin,ijkend                                                    
      loss(ijk,  1) = + dw(ijk,  2,  1) &
          + dw(ijk,  3,  1) &
          + dw(ijk, 19,  1) &
          + dw(ijk, 23,  1) &
          + dw(ijk, 24,  1) &
          + dw(ijk, 42,  1) &
          + dw(ijk, 43,  1) &
          + dw(ijk, 76,  1) &
          + dw(ijk, 77,  1) &
          + dw(ijk, 78,  1) &
          + dw(ijk, 79,  1) &
          + dw(ijk, 84,  1)
      loss(ijk,  2) = + dw(ijk,  9,  2) &
          + dw(ijk, 26,  2)
      loss(ijk,  3) = + dw(ijk, 29,  3) &
          + dw(ijk, 32,  3) &
          + dw(ijk, 35,  3) &
          + dw(ijk, 42,  3) &
          +  0.2000000000000000D+01 * dw(ijk, 44,  3) &
          + dw(ijk, 45,  3) &
          + dw(ijk, 87,  3) &
          + dw(ijk, 88,  3) &
          + dw(ijk, 89,  3) &
          + dw(ijk, 90,  3) &
          + dw(ijk, 91,  3) &
          + dw(ijk, 92,  3) &
          + dw(ijk, 93,  3) &
          + dw(ijk,127,  3)
      loss(ijk,  4) = + dw(ijk,  1,  4) &
          + dw(ijk, 30,  4) &
          + dw(ijk, 31,  4) &
          + dw(ijk, 33,  4) &
          + dw(ijk, 36,  4) &
          + dw(ijk, 43,  4) &
          + dw(ijk, 47,  4) &
          + dw(ijk, 80,  4) &
          + dw(ijk, 82,  4) &
          + dw(ijk, 85,  4)
      loss(ijk,  5) = + dw(ijk,  7,  5) &
          + dw(ijk,  8,  5) &
          + dw(ijk, 34,  5) &
          + dw(ijk, 38,  5) &
          + dw(ijk, 45,  5) &
          + dw(ijk, 46,  5) &
          + dw(ijk, 47,  5) &
          +  0.2000000000000000D+01 * dw(ijk, 49,  5) &
          + dw(ijk, 69,  5) &
          + dw(ijk, 70,  5) &
          + dw(ijk, 71,  5) &
          + dw(ijk, 72,  5) &
          + dw(ijk, 73,  5) &
          + dw(ijk, 74,  5) &
          +  0.4000000000000000D+00 * dw(ijk, 75,  5) &
          + dw(ijk,116,  5) &
          + dw(ijk,117,  5) &
          + dw(ijk,118,  5) &
          + dw(ijk,119,  5) &
          + dw(ijk,120,  5) &
          + dw(ijk,121,  5) &
          + dw(ijk,122,  5) &
          + dw(ijk,128,  5)
      loss(ijk,  6) = + dw(ijk, 48,  6)
      loss(ijk,  7) = + dw(ijk,  4,  7) &
          + dw(ijk, 39,  7)
      loss(ijk,  8) = + dw(ijk,  5,  8) &
          + dw(ijk, 40,  8)
      loss(ijk,  9) = + dw(ijk,  6,  9) &
          + dw(ijk, 37,  9) &
          + dw(ijk, 41,  9)
      loss(ijk, 10) = + dw(ijk, 51, 10)
      loss(ijk, 12) = + dw(ijk, 52, 12)
      loss(ijk, 18) = + dw(ijk, 18, 18) &
          + dw(ijk, 19, 18) &
          + dw(ijk, 29, 18) &
          + dw(ijk, 30, 18) &
          + dw(ijk, 31, 18) &
          + dw(ijk, 53, 18) &
          + dw(ijk, 54, 18)
      loss(ijk, 19) = + dw(ijk, 20, 19) &
          + dw(ijk, 21, 19) &
          + dw(ijk, 22, 19)
      loss(ijk, 20) = + dw(ijk, 23, 20) &
          + dw(ijk, 25, 20) &
          + dw(ijk, 26, 20) &
          + dw(ijk, 32, 20) &
          + dw(ijk, 33, 20) &
          + dw(ijk, 34, 20) &
          + dw(ijk, 39, 20) &
          + dw(ijk, 40, 20) &
          + dw(ijk, 41, 20) &
          + dw(ijk, 50, 20) &
          + dw(ijk, 51, 20) &
          + dw(ijk, 52, 20) &
          + dw(ijk, 55, 20) &
          + dw(ijk, 56, 20) &
          +  0.9991220000000000D+00 * dw(ijk, 57, 20) &
          + dw(ijk, 58, 20) &
          + dw(ijk, 59, 20) &
          + dw(ijk, 60, 20) &
          + dw(ijk, 61, 20) &
          + dw(ijk, 62, 20) &
          + dw(ijk, 63, 20) &
          + dw(ijk, 64, 20) &
          +  0.6500000000000000D+00 * dw(ijk, 65, 20) &
          +  0.5507500000000001D+00 * dw(ijk, 66, 20) &
          + dw(ijk, 67, 20) &
          + dw(ijk, 68, 20)
      loss(ijk, 21) = + dw(ijk, 24, 21) &
          + dw(ijk, 25, 21) &
          +  0.2000000000000000D+01 * dw(ijk, 27, 21) &
          +  0.2000000000000000D+01 * dw(ijk, 28, 21) &
          + dw(ijk, 35, 21) &
          + dw(ijk, 36, 21) &
          + dw(ijk, 38, 21) &
          + dw(ijk, 81, 21) &
          + dw(ijk, 94, 21) &
          + dw(ijk, 95, 21) &
          + dw(ijk, 96, 21) &
          + dw(ijk, 97, 21) &
          + dw(ijk, 98, 21) &
          + dw(ijk, 99, 21) &
          + dw(ijk,100, 21) &
          + dw(ijk,123, 21)
      loss(ijk, 22) = + dw(ijk, 55, 22)
      loss(ijk, 23) = + dw(ijk, 56, 23)
      loss(ijk, 24) = + dw(ijk, 57, 24)
      loss(ijk, 25) = + dw(ijk, 58, 25) &
          + dw(ijk, 73, 25) &
          + dw(ijk, 76, 25)
      loss(ijk, 26) = + dw(ijk, 53, 26) &
          + dw(ijk, 59, 26) &
          + dw(ijk, 74, 26) &
          + dw(ijk, 77, 26)
      loss(ijk, 27) = + dw(ijk, 60, 27) &
          + dw(ijk, 72, 27)
      loss(ijk, 28) = + dw(ijk, 10, 28) &
          + dw(ijk, 11, 28) &
          + dw(ijk, 61, 28) &
          + dw(ijk, 69, 28)
      loss(ijk, 29) = + dw(ijk, 12, 29) &
          + dw(ijk, 62, 29) &
          + dw(ijk, 70, 29)
      loss(ijk, 30) = + dw(ijk, 15, 30) &
          + dw(ijk, 63, 30)
      loss(ijk, 31) = + dw(ijk, 16, 31) &
          + dw(ijk, 54, 31) &
          +  0.8308100000000000D+00 * dw(ijk, 64, 31) &
          +  0.8947000000000001D+00 * dw(ijk, 71, 31)
      loss(ijk, 32) = + dw(ijk, 17, 32) &
          + dw(ijk, 68, 32)
      loss(ijk, 33) = +  0.7189300000000001D+00 * dw(ijk, 67, 33) &
          +  0.6000000000000000D+00 * dw(ijk, 75, 33) &
          +  0.7000000000000000D+00 * dw(ijk, 79, 33) &
          + dw(ijk, 86, 33)
      loss(ijk, 34) = + dw(ijk, 13, 34) &
          + dw(ijk, 65, 34)
      loss(ijk, 35) = + dw(ijk, 14, 35) &
          + dw(ijk, 66, 35)
      loss(ijk, 38) = + dw(ijk, 87, 38) &
          + dw(ijk, 94, 38) &
          +  0.2000000000000000D+01 * dw(ijk,101, 38) &
          +  0.9861000000000000D+00 * dw(ijk,102, 38) &
          + dw(ijk,103, 38) &
          + dw(ijk,104, 38) &
          + dw(ijk,105, 38) &
          +  0.4396900000000000D+00 * dw(ijk,106, 38) &
          + dw(ijk,107, 38) &
          + dw(ijk,116, 38) &
          + dw(ijk,124, 38)
      loss(ijk, 39) = +  0.9181300000000000D+00 * dw(ijk, 88, 39) &
          + dw(ijk, 95, 39) &
          +  0.9961500000000000D+00 * dw(ijk,102, 39) &
          +  0.9917200000000000D+00 * dw(ijk,108, 39) &
          +  0.9100600000000000D+00 * dw(ijk,117, 39)
      loss(ijk, 40) = + dw(ijk, 89, 40) &
          + dw(ijk, 96, 40) &
          + dw(ijk,103, 40) &
          + dw(ijk,109, 40) &
          + dw(ijk,118, 40)
      loss(ijk, 41) = + dw(ijk, 90, 41) &
          + dw(ijk, 97, 41) &
          + dw(ijk,104, 41) &
          + dw(ijk,110, 41) &
          + dw(ijk,119, 41)
      loss(ijk, 42) = + dw(ijk, 80, 42) &
          + dw(ijk, 81, 42)
      loss(ijk, 43) = + dw(ijk, 82, 43) &
          + dw(ijk, 83, 43) &
          + dw(ijk, 84, 43)
      loss(ijk, 44) = + dw(ijk, 91, 44) &
          + dw(ijk, 98, 44) &
          + dw(ijk,105, 44) &
          + dw(ijk,111, 44) &
          + dw(ijk,120, 44)
      loss(ijk, 45) = + dw(ijk, 85, 45) &
          +  0.9046800000000000D+00 * dw(ijk, 92, 45) &
          + dw(ijk, 99, 45) &
          +  0.9404600000000000D+00 * dw(ijk,106, 45) &
          + dw(ijk,108, 45) &
          + dw(ijk,109, 45) &
          + dw(ijk,110, 45) &
          + dw(ijk,111, 45) &
          +  0.1941790000000000D+01 * dw(ijk,112, 45) &
          + dw(ijk,113, 45) &
          +  0.9682500000000001D+00 * dw(ijk,121, 45) &
          + dw(ijk,125, 45)
      loss(ijk, 46) = + dw(ijk, 93, 46) &
          + dw(ijk,100, 46) &
          + dw(ijk,107, 46) &
          + dw(ijk,113, 46) &
          +  0.2000000000000000D+01 * dw(ijk,114, 46) &
          +  0.2000000000000000D+01 * dw(ijk,115, 46) &
          + dw(ijk,122, 46)
      loss(ijk, 47) = + dw(ijk,123, 47) &
          + dw(ijk,124, 47) &
          + dw(ijk,125, 47) &
          +  0.2000000000000000D+01 * dw(ijk,126, 47) &
          + dw(ijk,127, 47) &
          + dw(ijk,128, 47)
      END DO   
                                                                                
   END SUBROUTINE fexloss                                                       
                                                                                
  END MODULE mod_chem_spack_fexloss                                             
                                                                                
